Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: FIXME
Upstream-Contact: FIXME
Source: FIXME
Disclaimer: Autogenerated by licensecheck

Files: HISTORY.Snd
 NEWS
 README.Snd
 _sndlib.h
 analog-filter.rb
 analog-filter.scm
 animals.scm
 audio.c
 autosave.scm
 bandedwg.cms
 bess.rb
 bess.scm
 bess1.rb
 bess1.scm
 big-gens.scm
 binary-io.scm
 bird.fsm
 bird.rb
 bird.scm
 bowl.cms
 case.scm
 clean.scm
 clm-ins.fs
 clm-ins.rb
 clm-ins.scm
 clm-strings.h
 clm.c
 clm.fs
 clm.h
 clm.rb
 clm23.scm
 clm2xen.c
 clm2xen.h
 cmn-glyphs.lisp
 configure.ac
 debug.scm
 dlocsig.scm
 draw.fs
 draw.rb
 draw.scm
 dsp.fs
 dsp.rb
 dsp.scm
 edit-menu.scm
 edit123.scm
 effects-utils.scm
 effects.fs
 effects.rb
 env.fs
 env.rb
 env.scm
 enved.fs
 enved.scm
 examp.fs
 examp.rb
 expandn.scm
 extensions.fs
 extensions.rb
 extensions.scm
 extsnd.html
 fade.scm
 fft-menu.scm
 fm.html
 fmv.scm
 fmviolin.clm
 freeverb.rb
 freeverb.scm
 fullmix.scm
 funcs.scm
 generators.scm
 gl.c
 grani.rb
 grani.scm
 heart.scm
 hooks.fs
 hooks.rb
 hooks.scm
 index.html
 index.rb
 index.scm
 io.c
 jcrev.scm
 jcvoi.scm
 json.scm
 leslie.cms
 libarb_s7.c
 libc.scm
 libdl.scm
 libgdbm.scm
 libgsl.scm
 libm.scm
 libutf8proc.scm
 makefile.in
 maraca.rb
 maraca.scm
 marks-menu.scm
 marks.fs
 marks.rb
 marks.scm
 maxf.rb
 maxf.scm
 misc.scm
 mix.fs
 mix.rb
 mix.scm
 mkinstalldirs
 mockery.scm
 moog.scm
 mus-config.h.in
 musglyphs.rb
 musglyphs.scm
 music5-examples
 music5.f
 nb.rb
 nb.scm
 new-effects.scm
 noise.rb
 noise.scm
 notcurses_s7.c
 nrepl-bits.h
 nrepl.c
 nrev.scm
 numerics.scm
 old-music5.f
 peak-phases.scm
 piano.rb
 piano.scm
 play.rb
 play.scm
 poly.rb
 poly.scm
 popup.rb
 prc95.rb
 prc95.scm
 primes.scm
 profile.scm
 pvoc.rb
 pvoc.scm
 r7rs.scm
 repl.c
 rgb.fs
 rgb.rb
 rgb.scm
 rubber.fs
 rubber.rb
 rubber.scm
 s7.h
 s7webserver/Makefile
 s7webserver/README
 s7webserver/jqconsole.min.js
 s7webserver/s7webserver.cpp
 s7webserver/s7webserver.h
 s7webserver/s7webserver_repl.html
 s7webserver/s7webserver_repl.py
 selection.scm
 singer.rb
 singer.scm
 snd-0.h
 snd-1.h
 snd-axis.c
 snd-chn.c
 snd-completion.c
 snd-dac.c
 snd-data.c
 snd-draw.c
 snd-edits.c
 snd-env.c
 snd-fft.c
 snd-file.c
 snd-file.h
 snd-find.c
 snd-forth-docs.fs
 snd-forth-init.fs
 snd-gl.scm
 snd-gxbitmaps.c
 snd-gxcolormaps.c
 snd-help.c
 snd-init.el
 snd-io.c
 snd-kbd.c
 snd-lint.scm
 snd-listener.c
 snd-main.c
 snd-marks.c
 snd-menu.c
 snd-menu.h
 snd-mix.c
 snd-motif.c
 snd-motif.scm
 snd-nogui.c
 snd-nogui0.h
 snd-nogui1.h
 snd-prefs.c
 snd-print.c
 snd-region.c
 snd-select.c
 snd-sig.c
 snd-snd.c
 snd-strings.h
 snd-test.fs
 snd-test.rb
 snd-trans.c
 snd-utils.c
 snd-x0.h
 snd-x1.h
 snd-xen.c
 snd-xm.fs
 snd-xm.rb
 snd-xref.c
 snd.1
 snd.c
 snd.desktop
 snd.h
 snd.html
 snd15.scm
 sndclm.html
 snddiff.scm
 sndinfo.c
 sndins/Makefile.in
 sndins/README
 sndins/samples/agn.fth
 sndins/samples/agn.rb
 sndins/samples/agn.scm
 sndins/samples/fmviolin.fth
 sndins/samples/fmviolin.rb
 sndins/samples/fmviolin.scm
 sndlib-strings.h
 sndlib-ws.scm
 sndlib.h
 sndlib.html
 sndlib2xen.c
 sndlib2xen.h
 sndplay.c
 sndwarp.scm
 sound.c
 special-menu.scm
 spectr.rb
 spectr.scm
 spokenword.scm
 stochastic.scm
 strad.rb
 strad.scm
 tankrev.scm
 tools/README
 tools/auto-tester.scm
 tools/compare-calls.scm
 tools/compsnd
 tools/concordance.scm
 tools/crossref.c
 tools/dup.scm
 tools/fbench.scm
 tools/ffitest.c
 tools/gdbinit
 tools/gldata.scm
 tools/make-config-pc.rb
 tools/make-snd-diffs
 tools/makegl.scm
 tools/sam.c
 tools/sed.scm
 tools/snd.supp
 tools/t101.scm
 tools/table.scm
 tools/tall.scm
 tools/tari.scm
 tools/tbig.scm
 tools/tbit.scm
 tools/tcase.scm
 tools/tclo.scm
 tools/tcomplex.scm
 tools/tcopy.scm
 tools/teq.scm
 tools/tests7
 tools/testsnd
 tools/texit.scm
 tools/tfft.scm
 tools/tform.scm
 tools/tgc.scm
 tools/tgen.scm
 tools/tgsl.scm
 tools/thash.scm
 tools/thook.scm
 tools/timp.scm
 tools/titer.scm
 tools/tlamb.scm
 tools/tleft.scm
 tools/tlet.scm
 tools/tlimit.scm
 tools/tlist.scm
 tools/tload.scm
 tools/tmac.scm
 tools/tmap-hash.scm
 tools/tmap.scm
 tools/tmat.scm
 tools/tmock.scm
 tools/tmv.scm
 tools/tnum.scm
 tools/tobj.scm
 tools/tpeak.scm
 tools/trclo.scm
 tools/tread.scm
 tools/trec.scm
 tools/tref.scm
 tools/tset.scm
 tools/tshoot.scm
 tools/tsort.scm
 tools/tstar.scm
 tools/tvect.scm
 tools/utf8-tests.scm
 tools/va.scm
 tools/valcall.scm
 v.rb
 v.scm
 vct.c
 vct.h
 write.scm
 ws.scm
 xen.c
 xen.h
 xm-enved.fs
 xm-enved.rb
 xm-enved.scm
 xm.c
 zip.rb
 zip.scm
Copyright: NONE
License: UNKNOWN
 FIXME

Files: sndins/sndins.c
 sndins/sndins.h
 ws.rb
Copyright: 2003-2014, Michael Scholz <mi-scholz@users.sourceforge.net>
  2003-2017, Michael Scholz <mi-scholz@users.sourceforge.net>
License: BSD-2-clause
 FIXME

Files: config.guess
 config.sub
Copyright: 1992-2020, Free Software Foundation, Inc.
License: GPL-3+ with Autoconf-data exception
 FIXME

Files: gl2ps.c
 gl2ps.h
Copyright: 1999-2012, C. Geuzaine
License: UNKNOWN
 FIXME

Files: s7.c
Copyright: 2013, Andreas Samoljuk
  port_data(port)[port_position(port)++] = c;
  port_write_character(port)(sc, c, port);
  s7_int type;
  str - port_data(port) : port_data_size(port);
License: 0BSD and/or Expat
 FIXME

Files: inf-snd.el
Copyright: 2002
License: BSD-2-clause
 FIXME

Files: dlocsig.rb
Copyright: 2003-2020, Michael Scholz <mi-scholz@users.sourceforge.net>
  92, 93, 94, 98, 99, 2000, 2001 Fernando Lopez Lezcano.
License: BSD-2-clause
 FIXME

Files: s7test.scm
Copyright: (0 (c 1)))) 1)
  (a a) (b b) (c c) (a a a)) :key car :from-end t :end 6) '(a a)))
  (a a) (b b) (c c) (a a a)) :key car :from-end t :end 6) 3))
  (a a) (b b) (c c) (a a a)) :key car :from-end t :end nil) '(a a a)))
  (a a) (b b) (c c) (a a a)) :key car :from-end t :end nil) 6))
  (a a) (b b) (c c) (a a a)) :key car :from-end t :start 1 :end 3)))
  (a a) (b b) (c c) (a a a)) :key car :from-end t) '(a a a)))
  (a a) (b b) (c c) (a a a)) :key car :from-end t) 6))
  (a a) (b b) (c c)) :key car :from-end t) '(a a)))
  (a a) (b b) (c c)) :key car :from-end t) '(b b)))
  (a a) (b b) (c c)) :key car :from-end t) '(c c)))
  (a a) (b b) (c c)) :key car :from-end t) 3))
  (a a) (b b) (c c)) :key car :from-end t) 4))
  (a a) (b b) (c c)) :key car :from-end t) 5))
  (a a) (b b) (c c)) :key car :from-end t)))
  (a a) (b b) (c c)) :key car) '(a)))
  (a a) (b b) (c c)) :key car) '(b)))
  (a a) (b b) (c c)) :key car) '(c)))
  (a a) (b b) (c c)) :key car) 0))
  (a a) (b b) (c c)) :key car) 1))
  (a a) (b b) (c c)) :key car) 2))
  (a a) (b b) (c c)) :key car)))
  (cdr c)) ht))) (or (equal? lst '(1 2)) (equal? lst '(2 1))))) #t)
  (cons (+ c 1) c)) b)))) '((3 5) 7))
  (f8 c 3)) 1) -> (let ((c 1)) (f8 c 3))
  (f8 c 3)) 1)) (f8 1 2)) -> (... (let f8 ((a 1) (b 2)) ((lambda (c) (f8 c 3)) 1)))
  (f8 c 3)) 1)) (f8 1 2))"
  (if (char=? c #`)
  (if (not (char=? c #2)) (format *stderr* ";fill! mock-string: ~C~%" c))) s)
  (if x (c 1) 2))))" " +: perhaps call/cc could be call-with-exit: (call/cc (lambda (c) (if x (c 1) 2)))")
  (if x c (c 2)))))" "")
  (let ((a 0))
  (letrec ((f0 (lambda (a) (+ a 1)))) (f0 (+ c 1)))) -> (letrec ((f0 (lambda (a) (+ a 1)))) (lambda (c) ...))
  (letrec ((f0 (lambda (a) (+ a 1)))) (f0 (+ c 1))))"
  (letrec ((f0 (lambda (a) (+ a c 1)))) (let ((c 32)) (f0 (+ c 1)))))"
  (list #t c)))))
  (set! (lst c) (+ (lst c) 1))) (list 0 1 2)))) a) lst)) '(0 2 4))
  (set! cc c) 5)) 6 7 8)))
  (set! cont c)
  (set! cont c) 0)))
  (set! cont c) 0))))
  (set! cont c)))
  (set! d (+ d c a)) d))
  (set! d (+ d c a))))
  (set! k c)
  (set! lst (cons c lst))) #u(90 91 92)) (reverse lst)) '(90 91 92))
  (set! str (cons (integer->char c) str))))))
  (set! str (cons c str))))))
  (set! sum (+ sum (cdr c)))) ht) sum)) 3)
  (set! v (cons (char->integer c) v)))
  (set! xx x) (set! cont c)))
  (string-set! str ctr c)
  (test (and (not (char-upper-case? c))
  (test (apply format #f (string-append "~" (string c)) '(a)) 'error))
  (test (reverse c) 'error)
  (values c (set! str (cons (integer->char c) str)))))))
  (write-char c p)) "#b11")))
  (y c)))
  2002, Heinrich Taube (taube@uiuc.edu)
  2002-2004, Yuji Minejima <ggb01164@nifty.ne.jp>
  a 1)) ©a) (let ((Âªa 1)) Âªa) (let ((Â«a 1)) Â«a) (let ((Â¬a 1)) Â¬a) (let ((Â­a 1)) Â­a) (let ((Â®a 1)) Â®a) (let ((Â¯a 1)) Â¯a) (let ((Â°a 1)) Â°a) (let ((Â±a 1)) Â±a) (let ((Â²a 1)) Â²a) (let ((Â³a 1)) Â³a) (let ((Â´a 1)) Â´a) (let ((Âµa 1)) Âµa) (let ((Â¶a 1)) Â¶a) (let ((Â·a 1)) Â·a) (let ((Â¸a 1)) Â¸a) (let ((Â¹a 1)) Â¹a) (let ((Âºa 1)) Âºa) (let ((Â»a 1)) Â»a) (let ((Â¼a 1)) Â¼a) (let ((Â½a 1)) Â½a) (let ((Â¾a 1)) Â¾a) (let ((Â¿a 1)) Â¿a) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ãa 1)) Ãa) (let ((Ã a 1)) Ã a) (let ((Ã¡a 1)) Ã¡a) (let ((Ã¢a 1)) Ã¢a) (let ((Ã£a 1)) Ã£a) (let ((Ã¤a 1)) Ã¤a) (let ((Ã¥a 1)) Ã¥a) (let ((Ã¦a 1)) Ã¦a) (let ((Ã§a 1)) Ã§a) (let ((Ã¨a 1)) Ã¨a) (let ((Ã©a 1)) Ã©a) (let ((Ãªa 1)) Ãªa) (let ((Ã«a 1)) Ã«a) (let ((Ã¬a 1)) Ã¬a) (let ((Ã­a 1)) Ã­a) (let ((Ã®a 1)) Ã®a) (let ((Ã¯a 1)) Ã¯a) (let ((Ã°a 1)) Ã°a) (let ((Ã±a 1)) Ã±a) (let ((Ã²a 1)) Ã²a) (let ((Ã³a 1)) Ã³a) (let ((Ã´a 1)) Ã´a) (let ((Ãµa 1)) Ãµa) (let ((Ã¶a 1)) Ã¶a) (let ((Ã·a 1)) Ã·a) (let ((Ã¸a 1)) Ã¸a) (let ((Ã¹a 1)) Ã¹a) (let ((Ãºa 1)) Ãºa) (let ((Ã»a 1)) Ã»a) (let ((Ã¼a 1)) Ã¼a) (let ((Ã½a 1)) Ã½a) (let ((Ã¾a 1)) Ã¾a) (let ((Ã¿a 1)) Ã¿a)) 181)
  d e f g)) 'c)
  d e f g))) 'c)
  functions + the setters thereof
License: BSD-2-clause and/or GPL-2+
 FIXME

Files: configure
Copyright: 1992-1996, 1998-2017, 2020-2021, Free Software Foundation,
  2021, Free Software Foundation, Inc.
License: FSFUL
 FIXME

Files: loop.scm
Copyright: 2002, Heinrich Taube (taube@uiuc.edu)
License: GPL-2+
 FIXME

Files: install-sh
Copyright: 1991, the Massachusetts Institute of Technology
License: HPND-sell-variant
 FIXME

Files: lint.scm
Copyright: (and (len=2? c)
  (and (len>1? c)
  (and (len>1? c) ; the usual... (let binding might be messed up)
  (append c (list result)))
  (case (type-of c)
  (cons (string->symbol (car c)) (cdr c)))
  (eq? first-func (caadr c))) ; all result clauses are the same!?
  (fwalk sym (cdr c))) (cddr tree))))
  (hash-special c sp-char-numeric))
  (hash-special c sp-read))
  (hash-table-set! h c (let ((name (symbol->string c)))
  (if (and (len>1? c)
  (if (and (not branch-let)
  (if (and else-error
  (if (eq? (car c) 'else) (return c))) else-foldable)
  (if (not (and (pair? c)
  (if (not (car c)) (values) c))
  (if (not (len>1? c))
  (if (not (or (symbol? (car c))
  (let ((cc (cons c (cdr call))))
  (let ((len (length c)))
  (let ((name (reverse (substring (symbol->string c) 1 (- (length (symbol->string c)) 1)))))
  (list (car c) (caadr c)))
  (list (car c) (cadr c) (cadr c)))
  (not (and (len>1? c)
  (not (len>1? c)))
  (or (pair? c) (eq? c 'else))) (car clause)) above
  (out-format outport "~NC#~A is ~W~%" lint-left-margin #space (substring str 1) (cdr c)))))
  (return-walker c func))
  (set! pos (+ pos 1))
  (side-effect? c env))
  (values (cadr c) (caddr c))) (cdr form))))))
  (vector-set! chars (char->integer c) #t))
  (when (and (pair? c)
  (when (pair? c)
  in (lambda (c)...) with a call on the function c.
License: UNKNOWN
 FIXME

Files: nrepl.scm
Copyright: (append-to-selection (ncplane_contents ncp row col 1 (- (eols row) col)))
  (apply nc-resize (ncplane_dim_yx (notcurses_stdplane nc)))))
  (do ((len (- (eols row) col))
  (if (and (= col (bols row))
  (if (and (= col (eols row))
  (increment-row 1)
  (let ((cur-line (current-expression ncp row)))
  (let ((newcol (word-back-x)))
  (let ((newcol (word-forward-x)))
  (let ((trailer (ncplane_contents ncp row col 1 (- (eols row) col)))
  (prepend-to-selection (ncplane_contents ncp row (bols row) 1 (- col (bols row))))
  (set! col (word-back-x)))))
  (set! col (word-forward-x)))))
  (set! repl-done #t)
  (set! repl-done #t)))
  (set-col (eols row))))
  (set-col (max (bols row) (- col 1)))))
  (set-col (min (eols row) (+ col 1)))))
  (set-row (- row 1))
  (set-row (max 0 (- row (- nc-rows status-rows))))))
  (set-row (max 0 (min ncp-max-row (+ row (- nc-rows status-rows)))))))
  (set-row 0)
  (set-row ncp-max-row)
  (unless (= row (- ncp-row))
  (unless (>= ncp-col 0)
  (when (< row ncp-max-row)
  (when (> col (bols row))
  (when (and (< col (eols row)) ; should this delete the newline?
  (when (string? selection)
  ncinput gives row|col in current view, so we need to map that to the ncplane row|col
License: UNKNOWN
 FIXME

Files: examp.scm
Copyright: (ash (logand b3 #b1000) -3))
License: UNKNOWN
 FIXME

Files: tools/tauto.scm
Copyright: (catch #t
  (set-car! p c)
  (when (checker c)
License: UNKNOWN
 FIXME

Files: tools/tmisc.scm
Copyright: (char-alphabetic? c)) str))
  11) str))))
License: UNKNOWN
 FIXME

Files: repl.scm
Copyright: (cond ((char? c)
  (fformat *stderr* "~C[H~C[J" #escape #escape)
  (format #f "buf: ~A ~A ~A" (history -1) (history -2) (history -3)))
  (format #f "line: ~A" histtop)))))
  (format #f "size: ~A, pos: ~A" histsize histpos))
  (format #f "xyz: ~S" val)))) val))
  (if (<= chars 1) (save-line))
  (let ((chr (next-char)))
  (let ((end (end-of-line cursor-pos)))
  (let ((len (length cur-line)))
  (let ((sym (with-let (sublet (*repl* 'repl-let))
  (set! ((*repl* 'repl-let) 'all-done) #t)))
  (set! (repl-let 'all-done) #t)))))
  (set! cur-line (string-append (cond ((= cursor-pos 0)
  (set! cursor-pos (end-of-line cursor-pos))
  (set! cursor-pos (start-of-line cursor-pos))
  (set! depth (- depth 1))
  (set! filename cur-line)
  (when (> cursor-pos 0)
  (when (pair? prev-line)
  (when (positive? cursor-pos)
  (when selection
  (with-let (sublet (*repl* 'repl-let))
  if user pastes in a selection, it may have embedded tabs which are just spacing,
  try to find corresponding column in next line
  try to find corresponding column in previous line
License: UNKNOWN
 FIXME

Files: snd-test.scm
Copyright: (do ((pscl (/ 1.0 (floor (/ size 4)))) ; overlap = 4
  (float-vector-add! amps paincrs)
  descriptor)))
  ptr))
License: UNKNOWN
 FIXME

Files: stuff.scm
Copyright: (if (and (or (procedure? (cdr c))
License: UNKNOWN
 FIXME

Files: reactive.scm
Copyright: (if (slot-equal? cp c)
License: UNKNOWN
 FIXME

Files: cload.scm
Copyright: (let* ((type (c 0))
  (set! constants (cons (list c-type (symbol->string (collides? c))) constants)))
  (set! macros (cons (list c-type (symbol->string (collides? c))) macros)))
License: UNKNOWN
 FIXME

Files: s7-scm.html
Copyright: (set! ((*repl* 'repl-let) 'all-done) #t)))
  (set! ((*repl* 'repl-let) 'all-done) #t))))
License: UNKNOWN
 FIXME

Files: tools/make-index.scm
Copyright: (set! (h c) #t))
License: UNKNOWN
 FIXME

Files: tools/check-sigs.scm
Copyright: (set-car! p c)
License: UNKNOWN
 FIXME

Files: s7-ffi.html
Copyright: 1.0
  function;
License: UNKNOWN
 FIXME

Files: headers.c
Copyright: AESD: recording data, APPL: application specific stuff
  FILE ALBM DATA
  ICRD: creation date,
  SOFTWARE, CREATEDATE
License: UNKNOWN
 FIXME

Files: COPYING
Copyright: 1996-2016, Bill Schottstaedt.
License: UNKNOWN
 FIXME

Files: DotEmacs
Copyright: 2001, Fernando Lopez-Lezcano <nando@ccrma.stanford.edu>
License: UNKNOWN
 FIXME

Files: rhypar.cms
Copyright: MMVII
License: UNKNOWN
 FIXME

Files: sndscm.html
Copyright: Patte Wood">
License: UNKNOWN
 FIXME

Files: snd-ladspa.c
Copyright: 2000, Richard W.E. Furse.
  descriptor): plugin copyright or 'None'"
License: UNKNOWN
 FIXME

Files: CM_patterns.scm
Copyright: 2008-2009, Rick Taube.
License: UNKNOWN
 FIXME

Files: grfsnd.html
Copyright: 2008, William Schottstaedt
  descriptor)))
  ptr)
License: UNKNOWN
 FIXME

Files: s7.html
Copyright: autotest (cons c args) (- args-left 1)))
  set! str (cons c str))))))
License: UNKNOWN
 FIXME

Files: spectr.fs
Copyright: clarinet (cl)
License: UNKNOWN
 FIXME

Files: tools/cb.scm
Copyright: cond
License: UNKNOWN
 FIXME

Files: popup.fs
Copyright: in edhist-apply, see above
  is index (i) from edhist-apply-edits, see below
License: UNKNOWN
 FIXME

Files: tools/tio.scm
Copyright: set! str (cons c str))))))
License: UNKNOWN
 FIXME

Files: s7-slib-init.scm
Copyright: NONE
License: public-domain
 FIXME

