mirror of
https://expo.survex.com/repositories/expoweb/.git/
synced 2024-11-29 21:32:00 +00:00
566 lines
20 KiB
Perl
Executable File
566 lines
20 KiB
Perl
Executable File
require Text::CSV;
|
|
|
|
#!/usr/bin/perl -w
|
|
use strict;
|
|
|
|
|
|
#Change to autogen directory, meking directory as nescessary
|
|
-d "autogen" or mkdir "autogen", 0755;
|
|
|
|
|
|
#Read in pos file to @pos
|
|
open INPUT2, "<all.pos";
|
|
my @pos = <INPUT2>;
|
|
close INPUT2;
|
|
|
|
|
|
|
|
#Start writing index file
|
|
open IDXALL, ">..\/indxal.htm" or die $!;
|
|
print IDXALL <<END;
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
|
<!-- *** This file is auto-generated - edit cavetab.csv instead -->
|
|
<html lang="en">
|
|
<head>
|
|
<title>Loser Plateau area : Cave description index</title>
|
|
</head>
|
|
<body>
|
|
<h1>Kataster Gruppe 1623:<br>Loser Augst-Eck - INDEX</h1>
|
|
|
|
<!-- <dl compact> -->
|
|
<table border=0 frame=0>
|
|
END
|
|
|
|
#Starting to read in csv file, eat header line
|
|
<>;
|
|
#create Text::CSV object
|
|
my $csv = Text::CSV->new();
|
|
|
|
my ($dummy, $kat_num, $kat_status, $ents, $other_number, $mult_ents, $file, $name, $unofficial_name, $comment, $area, $no_info, $explorers, $u_description, $equipment, $qmlist, $katstatus, $references, $u_centre_line, $u_drawn_survey, $survex_file, $length, $depth, $extent, $header,$footer, $notes, $ent_name, $tag_punkt, $other_punkt, $desc_other_punkt, $exact_punkt, $fix_type, $gpspresa, $gpspostsa, $northing, $easting, $altitude, $bearings, $map, $location, $approach, $ent_desc, $ent_photo, $marking);
|
|
#While loop which reads in each line of csv file
|
|
while (<>) {
|
|
chomp;
|
|
|
|
#split single line into all the fields using Text::CSV
|
|
my $pat1 = ",,";
|
|
my $pat1rep = ",\"\",";
|
|
s/$pat1/$pat1rep/g;
|
|
s/$pat1/$pat1rep/g;
|
|
$_="$_\n";
|
|
if ($csv->parse($_)) {
|
|
my @field = $csv->fields;
|
|
($dummy, $kat_num, $kat_status, $ents, $other_number, $mult_ents, $file, $name, $unofficial_name, $comment, $area, $no_info, $explorers, $u_description, $equipment, $qmlist, $katstatus, $references, $u_centre_line, $u_drawn_survey, $survex_file, $length, $depth, $extent, $header,$footer, $notes, $ent_name, $tag_punkt, $other_punkt, $desc_other_punkt, $exact_punkt, $fix_type, $gpspresa, $gpspostsa, $northing, $easting, $altitude, $bearings, $map, $location, $approach, $ent_desc, $ent_photo, $marking) = $csv->fields;
|
|
} else {
|
|
my $err = $csv->error_input;
|
|
print "parse() failed on argument: ", $err, "\n";
|
|
}
|
|
|
|
#generate $number variable to hold kataster no. or other no. then empty other number if both are not present
|
|
my $number = $kat_num;
|
|
if ($number eq "") {
|
|
$number = $other_number;
|
|
$other_number = "";
|
|
}
|
|
|
|
my $e = $ents;
|
|
$e =~ s/ +/ /g;
|
|
#print IDXALL "<dt><a name=\"$number\">$number <small>$e</small></a><dd>";
|
|
print IDXALL "<tr><td><a name=\"$number\">$number <small>$e</small></a></td><td>";
|
|
if ($file ne "") {
|
|
$number =~ s/\//-/g;
|
|
$number =~ s/\?/q/;
|
|
print "$file\n";
|
|
open FILE, ">..\/$file" or die $!;
|
|
print FILE <<END;
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
|
|
<!-- *** This file is auto-generated - edit cavetab.csv instead -->
|
|
<html lang=en>
|
|
<head>
|
|
<title>
|
|
END
|
|
if ($kat_num ne "") {
|
|
print FILE "1623:$kat_num\n";
|
|
} else {
|
|
print FILE "$number\n";
|
|
}
|
|
print FILE <<END;
|
|
</title>
|
|
</head>
|
|
<body>
|
|
<center>
|
|
END
|
|
print FILE "$header\n";
|
|
print FILE <<END;
|
|
<table border=0 width=100%>
|
|
<tr><th align=left><font size=+2>$number $ents</font></th>
|
|
<th align=center><font size=+2>$name</font></th>
|
|
<th align=right><font size=+2>$kat_status</font></th></tr>
|
|
END
|
|
if ($other_number ne "") {
|
|
if ($unofficial_name ne "") {
|
|
print FILE "<tr><th></th><th align=center lang=de><font size=+2>= $other_number ($unofficial_name)</font></th></tr>";
|
|
}
|
|
else {
|
|
print FILE "<tr><th></th><th align=center lang=de><font size=+2>= $other_number</font></th></tr>";
|
|
}
|
|
}
|
|
else {
|
|
if ($unofficial_name ne "") {
|
|
print FILE "<tr><th></th><th align=center lang=de><font size=+2>($unofficial_name)</font></th></tr>";
|
|
}
|
|
}
|
|
print FILE <<END;
|
|
|
|
</table></center>
|
|
<p>
|
|
END
|
|
if ($length ne "") {
|
|
print FILE "<b>Length:</b> $length ";
|
|
}
|
|
if ($depth ne "") {
|
|
print FILE "<b>Depth:</b> $depth ";
|
|
}
|
|
if ($extent ne "") {
|
|
print FILE "<b>Extent:</b> $extent ";
|
|
}
|
|
print FILE "\n<p>\n";
|
|
|
|
# Entrance specific bit
|
|
# If there are multiple entrances
|
|
if($mult_ents eq "yes"){
|
|
print FILE "<menu>";
|
|
my $e_mult_ents;
|
|
do{
|
|
my $e = <>;
|
|
chomp;
|
|
$e =~ y/\t/ /;
|
|
$e =~ s/\"\"/\"/g;
|
|
my @fields = split(/,/, $e);
|
|
#print "$e\n";
|
|
#print @fields;
|
|
$e = "\"\t";
|
|
my $statement;
|
|
foreach $statement (@fields)
|
|
{
|
|
#print "$_ z\n";
|
|
#print "$statement\n";
|
|
if ($e =~ /\t$/)
|
|
{
|
|
if ($statement =~ /^"/)
|
|
{
|
|
if ($statement =~ /"$/)
|
|
{
|
|
$e = "$e$statement\t";
|
|
}
|
|
else
|
|
{
|
|
$e = "$e$statement,";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$e = "$e\"$statement\"\t";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ($statement =~ /"$/)
|
|
{
|
|
$e = "$e$statement\t";
|
|
}
|
|
else
|
|
{
|
|
$e = "$e$statement,";
|
|
}
|
|
}
|
|
}
|
|
|
|
#print "$e\n\n";
|
|
$e =~ s/"\t"/\t/g;
|
|
$e =~ s/\\"/"/g;
|
|
#print "$_\n\n";
|
|
my ($edummy, $ekat_num, $ekat_status, $eents, $eother_number, $emult_ents, $efile, $ename, $eunofficial_name, $ecomment, $earea, $eno_info, $eexplorers, $eu_description,$eequipment, $eqmlist, $ekatstatus, $ereferences, $eu_centre_line, $eu_drawn_survey, $esurvex_file, $elength, $edepth, $eextent, $eheader, $efooter, $enotes, $eent_name, $etag_punkt, $eother_punkt, $edesc_other_punkt, $eexact_punkt, $efix_type, $egpspresa, $egpspostsa, $enorthing, $eeasting, $ealtitude, $ebearings, $emap, $elocation, $eapproach, $eent_desc, $eent_photo, $emarking) = split /\t/, $e;
|
|
#It is an ugly world out here. The last entry does not work the same as the rest so here is a bodge to fix it.
|
|
if ($marking =~ m/(.*)...$/) {
|
|
$marking = $1;
|
|
}
|
|
else{
|
|
$marking="";
|
|
}
|
|
my $enumber = $ekat_num;
|
|
if ($enumber eq "") {
|
|
$enumber = $eother_number;
|
|
$eother_number = "";
|
|
}
|
|
print FILE "\n<li>";
|
|
if ($efile ne ""){
|
|
print FILE "<a href=\"$efile\">";
|
|
}
|
|
print FILE "$enumber$eents";
|
|
if ($efile ne ""){
|
|
print FILE "</a>";
|
|
}
|
|
print FILE " ";
|
|
# decide which epunkt to quote
|
|
my $epunkt;
|
|
if ($etag_punkt ne "") {
|
|
$epunkt=$etag_punkt;
|
|
}
|
|
elsif ($eother_punkt ne "") {
|
|
$epunkt = $eother_punkt;
|
|
}
|
|
elsif ($eexact_punkt ne "") {
|
|
$epunkt = $eexact_punkt;
|
|
}
|
|
elsif ($egpspostsa ne "") {
|
|
$epunkt = $egpspostsa;
|
|
}
|
|
elsif ($egpspresa ne "") {
|
|
$epunkt = $egpspresa;
|
|
}
|
|
else {
|
|
$epunkt = "";
|
|
}
|
|
#Find the position of that punkt
|
|
|
|
if ($epunkt ne "") {
|
|
#print "Looking for $epunkt\n";
|
|
for my $surveypoint ( @pos ) {
|
|
#print "b$surveypoint";
|
|
#print "e";
|
|
if ($surveypoint =~ m/\( *([0-9.\-]*), *([0-9.\-]*), *([0-9.\-]*) \) $epunkt(\r\n|\n|\r)/){
|
|
$eeasting=$1;
|
|
$enorthing=$2;
|
|
$ealtitude=$3;
|
|
#print "Found for $epunkt at $eeasting\n";
|
|
}
|
|
}
|
|
}
|
|
#Write out info for entrance
|
|
if ($eent_name ne "") {
|
|
print FILE "$eent_name";
|
|
}
|
|
if ($ealtitude ne "") {
|
|
print FILE "<b>Alt:</b> $ealtitude ";
|
|
}
|
|
if ($enorthing ne "") {
|
|
print FILE "<b>N</b>$enorthing ";
|
|
}
|
|
if ($eeasting ne "") {
|
|
print FILE "<b>E</b>$eeasting ";
|
|
}
|
|
if ($efix_type ne "") {
|
|
print FILE "<b>Fix type:</b> $efix_type ";
|
|
}
|
|
if ($etag_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> tag ";
|
|
}
|
|
else{
|
|
if ($eother_punkt ne "") {
|
|
if ($edesc_other_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> $edesc_other_punkt ";
|
|
}
|
|
else{
|
|
print FILE "<b>Fix position:</b> Do not know ";
|
|
}
|
|
}
|
|
else{
|
|
if ($eexact_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> exact point ";
|
|
}
|
|
}
|
|
}
|
|
if ($epunkt ne "") {
|
|
print FILE "<b>Point name:</b> $epunkt ";
|
|
}
|
|
if ($egpspresa ne "") {
|
|
print FILE "<b>GPS pre sa:</b> $egpspresa ";
|
|
}
|
|
if ($egpspostsa ne "") {
|
|
print FILE "<b>GPS post sa:</b> $egpspostsa ";
|
|
}
|
|
$e_mult_ents = $emult_ents;
|
|
}
|
|
while($e_mult_ents ne "last entrance");
|
|
print FILE "</menu>";
|
|
}
|
|
#If there is only one entrance
|
|
else{
|
|
# decide which punkt to quote
|
|
my $punkt;
|
|
if ($tag_punkt ne "") {
|
|
$punkt=$tag_punkt;
|
|
}
|
|
elsif ($other_punkt ne "") {
|
|
$punkt = $other_punkt;
|
|
}
|
|
elsif ($exact_punkt ne "") {
|
|
$punkt = $exact_punkt;
|
|
}
|
|
elsif ($gpspostsa ne "") {
|
|
$punkt = $gpspostsa;
|
|
}
|
|
elsif ($gpspresa ne "") {
|
|
$punkt = $gpspresa;
|
|
}
|
|
else {
|
|
$punkt = "";
|
|
}
|
|
#Find the position of that punkt
|
|
|
|
if ($punkt ne "") {
|
|
#print "Looking for $punkt\n";
|
|
for my $surveypoint ( @pos ) {
|
|
#print "b$surveypoint";
|
|
#print "e";
|
|
if ($surveypoint =~ m/\( *([0-9\.\-]*), *([0-9\.\-]*), *([0-9\.\-]*) \) $punkt(\r\n|\n|\r)/){
|
|
$easting=$1;
|
|
$northing=$2;
|
|
$altitude=$3;
|
|
#print "Found for $punkt at $easting\n";
|
|
}
|
|
}
|
|
}
|
|
#Write out info for entrance
|
|
if ($ent_name ne "") {
|
|
print FILE "<b>Entrance Name:</b> $ent_name <p>";
|
|
}
|
|
if ($altitude ne "") {
|
|
print FILE "<b>Alt:</b> $altitude ";
|
|
}
|
|
if ($northing ne "") {
|
|
print FILE "<b>N</b>$northing ";
|
|
}
|
|
if ($easting ne "") {
|
|
print FILE "<b>E</b>$easting ";
|
|
}
|
|
if ($fix_type ne "") {
|
|
print FILE "<b>Fix type:</b> $fix_type ";
|
|
}
|
|
if ($tag_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> tag ";
|
|
}
|
|
else{
|
|
if ($other_punkt ne "") {
|
|
if ($desc_other_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> $desc_other_punkt ";
|
|
}
|
|
else{
|
|
print FILE "<b>Fix position:</b> Do not know ";
|
|
}
|
|
}
|
|
else{
|
|
if ($exact_punkt ne "") {
|
|
print FILE "<b>Fix position:</b> exact point ";
|
|
}
|
|
}
|
|
}
|
|
if ($punkt ne "") {
|
|
print FILE "<b>Point name:</b> $punkt ";
|
|
}
|
|
if ($gpspresa ne "") {
|
|
print FILE "<b>GPS pre sa:</b> $gpspresa ";
|
|
}
|
|
if ($gpspostsa ne "") {
|
|
print FILE "<b>GPS pre sa:</b> $gpspostsa ";
|
|
}
|
|
}
|
|
# Cave general bit
|
|
#print FILE "\n<p>\n";
|
|
if ($location ne "") {
|
|
print FILE "\n<p><b>Location:</b> $location";
|
|
}
|
|
if ($bearings ne "") {
|
|
print FILE "\n<p><b>Bearings:</b> $bearings";
|
|
}
|
|
if ($approach ne "") {
|
|
print FILE "\n<p><b>Approach:</b> $approach";
|
|
}
|
|
if ($map ne "") {
|
|
print FILE "\n<p><b>Map:</b> $map";
|
|
}
|
|
if ($ent_desc ne "") {
|
|
print FILE "\n<p><b>Entrance Description:</b> $ent_desc";
|
|
}
|
|
if ($ent_photo ne "") {
|
|
print FILE "\n<p><b>Entrance Photo:</b> $ent_photo";
|
|
}
|
|
if ($marking ne "") {
|
|
print FILE "\n<p><b>Marking:</b> $marking";
|
|
}
|
|
if ($references ne "") {
|
|
print FILE "\n<p><b>References:</b> $references";
|
|
}
|
|
if ($u_description ne "") {
|
|
print FILE "\n<p><b>Underground Description:</b> $u_description";
|
|
}
|
|
if ($equipment ne "") {
|
|
print FILE "\n<p><b>Equipment:</b> $equipment";
|
|
}
|
|
if ($qmlist ne "") {
|
|
print FILE "\n<p><b>QM list:</b> $qmlist";
|
|
}
|
|
if ($u_drawn_survey ne "") {
|
|
print FILE "\n<p><b>Survey:</b> $u_drawn_survey";
|
|
}
|
|
if ($notes ne "") {
|
|
print FILE "\n<p><b>Notes:</b> $notes";
|
|
}
|
|
if ($explorers ne "") {
|
|
print FILE "\n<p><b>Explorers:</b> $explorers";
|
|
}
|
|
if ($katstatus ne "") {
|
|
print FILE "\n<p><b>Kataster Status:</b> $katstatus";
|
|
}
|
|
if ($u_centre_line ne "") {
|
|
print FILE "\n<p><b>Centre Line:</b> $u_centre_line";
|
|
}
|
|
if ($survex_file ne "") {
|
|
print FILE "\n<p><b>Survex file:</b> $survex_file";
|
|
}
|
|
print FILE "\n<hr>";
|
|
print FILE "\n<!-- LINKS -->";
|
|
if ($footer ne "") {
|
|
print FILE "\n<p>$footer";
|
|
}
|
|
my $toroot;
|
|
$toroot = "";
|
|
#determine the number of directorys deep the caves main page is at in order to link to area descriptions and indxal
|
|
if ($file =~ /.*\/.*/) {
|
|
$toroot = "../";
|
|
}
|
|
if ($file =~ /.*\/.*\/.*/) {
|
|
$toroot = '../../';
|
|
}
|
|
if ($file =~ /.*\/.*\/.*\/.*/) {
|
|
$toroot = '../../../';
|
|
}
|
|
if ($area =~ /(1a|1b|1c|1d)/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "plateau\/index.htm#$number\">Plateau area index and description</a><br>";
|
|
}
|
|
if ($area =~ /(2a|2b)/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "smkridge\/index.htm#$number\">Schwarzmooskogel ridge area index and description</a><br>";
|
|
}
|
|
if ($area =~ /3/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "br-alm\/index.htm#$number\">Bräuning Alm area index and description</a><br>";
|
|
}
|
|
if ($area =~ /4/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "kratzer\/index.htm#$number\">Kratzer valley index and description</a><br>";
|
|
}
|
|
if ($area =~ /5/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "wilden\/index.htm#$number\">Schwarzmoos-Wildensee area index and description</a><br>";
|
|
}
|
|
if ($area =~ /6/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "plateau\/index.htm#$number\">Far plateau area index and description</a><br>";
|
|
}
|
|
if ($area =~ /7/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "egglgrub\/index.htm#$number\">Egglgrube area index and description</a><br>";
|
|
}
|
|
if ($area =~ /(8a|8b|8c|8d)/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "loser\/index.htm#$number\">Loser/Augst See area index and description</a><br>";
|
|
}
|
|
if ($area =~ /9/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "gschwand\/index.htm#$number\">Gschwandt area index and description</a><br>";
|
|
}
|
|
if ($area =~ /10/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "aaussee\/index.htm#$number\">N & NE shore of Altauseer See</a><br>";
|
|
}
|
|
if ($area =~ /11/) {
|
|
print FILE "\n<img alt=\">\" src=\"..\/..\/icons\/lists\/0.png\">";
|
|
print FILE "\n<a href=\"$toroot";
|
|
print FILE "augstb\/index.htm#$number\">Augstbach area index and description</a><br>";
|
|
}
|
|
print FILE <<END;
|
|
<img alt=">" src="../../icons/lists/0.png">
|
|
<a href="../indxal.htm#$number">Full Index</a><br>
|
|
<img alt=">" src="../../icons/lists/0.png">
|
|
<a href="../areas.htm">Other Areas</a><br>
|
|
<img alt=">" src="../../icons/lists/0.png">
|
|
<a href="../index.htm">Back to Expedition Intro page</a>
|
|
|
|
</body>
|
|
</html>
|
|
END
|
|
close FILE;
|
|
}
|
|
|
|
|
|
if ($name eq "") {
|
|
$name = "?";
|
|
}
|
|
if ($file ne "") {
|
|
print IDXALL "<a href=\"$file\">";
|
|
}
|
|
print IDXALL $name;
|
|
if (length $unofficial_name) {
|
|
print IDXALL " ($unofficial_name)";
|
|
}
|
|
if (length $other_number) {
|
|
print IDXALL " ($other_number)";
|
|
}
|
|
if (length $file) {
|
|
print IDXALL "</a>";
|
|
}
|
|
if (length $comment) {
|
|
print IDXALL " - $comment";
|
|
}
|
|
#print IDXALL "\n";
|
|
print IDXALL "</tr>\n";
|
|
}
|
|
print IDXALL <<END;
|
|
<!--</dl>-->
|
|
</table>
|
|
<hr>
|
|
<!-- LINKS -->
|
|
<img alt=">" src="../icons/lists/0.png">
|
|
Back to <a href="../index.htm">CUCC Home page</a><br>
|
|
<img alt=">" src="../icons/lists/0.png">
|
|
Back to <a href="index.htm">Expedition Intro page</a><br>
|
|
<img alt=">" src="../icons/lists/0.png">
|
|
<b>Main Indices:</b><br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="infodx.htm"><b>Index</b> to Expo</a> information pages<br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="areas.htm">Description of CUCC's area</a> and split to subareas<br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
List of (links to) <a href="pubs.htm">published reports and logbooks</a><br>
|
|
<img alt=">" src="../icons/lists/0.png">
|
|
<b>Pictures:</b><br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="gall0.htm">Text only Index</a><br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="gallery/0.htm">Index pages (with thumbnails)</a><br>
|
|
<img alt=">" src="../icons/lists/0.png">
|
|
Other info:<br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
Table of <a href="folk/index.htm">members of CUCC expeditions</a> 1976-99<br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="others/index.htm">Other groups</a> who have worked in the area.<br>
|
|
<img alt="--->" src="../icons/lists/1.png">
|
|
<a href="1626/index.htm">Adjacent area 1626</a>
|
|
|
|
</body>
|
|
</html>
|
|
END
|
|
close IDXALL;
|