// 990117 bkoz
// test functionality of basic_filebuf for char_type == char
// this is a data file for 27filebuf.cc

// Copyright (C) 1997-1999, 2009 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library 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 library; see the file COPYING3.  If not see
// <http://www.gnu.org/licenses/>.

/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme
/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow

/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap
/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose

/mnt/cdrom/marley-songs_of_freedom/disk_1/
/mnt/cdrom/marley-songs_of_freedom/disk_2/
/mnt/cdrom/marley-songs_of_freedom/disk_4/

/mnt/cdrom/marley-songs_of_freedom/disk_1/back out
/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low
/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka)
/mnt/cdrom/marley-songs_of_freedom/disk_1/caution
/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice
/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat
/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror
/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer
/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites
/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting
/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not
/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood
/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown
/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time
/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee
/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready
/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on
/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down
/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe
/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel
/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party
/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original)
/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining
/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original)
/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley
/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin'
/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle
/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy
/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up
/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly
/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide
/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff
/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside
/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion
/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba
/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself
/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread
/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble
/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant
/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face
/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver
/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock
/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite
/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system
/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card
/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12
/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12  mix
/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah
/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise
/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop
/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub
/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up
/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation
/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi
/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12  mix)
/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl
/mnt/cdrom/marley-songs_of_freedom/disk_4/survival
/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un
/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe

/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not
/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the
/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue

/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands
/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds
/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again
/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing
/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone
/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know
/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave
/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be
/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul

So I take a break, wander down to the park to stand, then lean into
the concrete railing demarking the beginnings of space, oceanic
space. I watch the waves break, and form, and ease back out to sea and
wrap my arms around myself and hug tightly because it's early in the
morning and windy, and the sun is late getting out of bed today, which
is good because if there was brilliant light illuminating all the
beauty around me I would be shocked, stunned, forced to retreat back
into my cabana in a daze, blinded by hummingbirds and callilillies and
un-named red, yellow, and blue flowers. Green envelopes me, waves
sooth me. I can see the wind flip the top of the waves seaward, right
before they break. The sea seems so calm from my perch above the fray
that I wonder if maybe there is just some part of the deepest, most
abstract ocean where there is a large creature who happily chews
plankton and wags its tail in gentle, adulating waves that spread and
move and gracefully glide thousands of miles, to crash upon a beach,
one after the other, politely waiting for a turn to dance with the
seashore.

I know: it is what the Mexican schoolchildren call "la vibora de la
mer," the serpent of the sea.





