diff --git a/latest/api/beicon.core.html b/latest/api/beicon.core.html
deleted file mode 100644
index 6595829..0000000
--- a/latest/api/beicon.core.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
beicon.core
behavior-subject
(behavior-subject v)
Bus that emits the most recent item it has observed and all subsequent observed items to each subscribed Observer.
buffer
(buffer n ob)
(buffer n skip ob)
Projects each element of an observable sequence into zero or more buffers which are produced based on element count information.
buffer-time
(buffer-time ms ob)
(buffer-time ms start ob)
(buffer-time ms start max ob)
Buffers the source Observable values for a specific time period.
buffer-until
(buffer-until notifier ob)
Buffers the source Observable values until notifier emits.
catch
(catch handler ob)
(catch pred handler ob)
Continues an observable sequence that is terminated by an exception with the next observable sequence.
combine-latest
(combine-latest obs)
(combine-latest o1 o2)
(combine-latest o1 o2 o3)
(combine-latest o1 o2 o3 o4)
(combine-latest o1 o2 o3 o4 & other)
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (constructor).
combine-latest-with
(combine-latest-with other ob)
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (operator).
concat
(concat & more)
Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully.
concat-all
(concat-all ob)
connect!
(connect! ob)
Connect the connectable observable.
create
(create sf)
Creates an observable sequence from a specified subscribe method implementation.
debounce
(debounce ms ob)
Emits an item from the source Observable after a particular timespan has passed without the Observable omitting any other items.
dedupe
(dedupe ob)
(dedupe f ob)
Returns an observable sequence that contains only distinct contiguous elements.
dedupe'
(dedupe' ob)
(dedupe' f ob)
Returns an observable sequence that contains only d istinct elements.
-
Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large.
delay
(delay ms ob)
Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved.
delay-at-least
(delay-at-least ms ob)
Time shifts at least ms
milisseconds.
delay-when
(delay-when sf ob)
(delay-when sd sf ob)
Time shifts the observable sequence based on a subscription delay and a delay selector function for each element.
disposable?
(disposable? v)
Check if the provided object is disposable (jvm) or subscription (js).
dispose!
(dispose! v)
Dispose resources acquired by the subscription.
empty
(empty)
Returns an observable sequence that is already in end state.
end!
(end! b)
Ends the given bus stream.
error!
(error! b e)
Pushes the given error to the bus stream.
filter
(filter f ob)
Filters the elements of an observable sequence based on a predicate.
finalize
(finalize f ob)
Returns an Observable that mirrors the source Observable, but will call a specified function when the source terminates on complete or error.
first
(first ob)
(first f ob)
(first f default ob)
Return an observable that only has the first value of the provided observable. You can optionally pass a predicate and default value.
fjoin
(fjoin & items)
Runs all observable sequences in parallel and collect their last elements.
from
(from v)
Creates an observable from js arrays, clojurescript collections, and promise instance.
from-atom
(from-atom atm)
(from-atom atm {:keys [emit-current-value?], :or {emit-current-value? false}})
from-event
(from-event et ev)
Creates an Observable by attaching an event listener to an event target
if-empty
(if-empty default ob)
Emits a given value if the source Observable completes without emitting any next value, otherwise mirrors the source Observable.
ignore
(ignore ob)
Ignores all elements in an observable sequence leaving only the termination messages.
interval
(interval ms)
Returns an observable sequence that produces a value after each period.
ISubscriber
protocol
Backpressure aware subscriber abstraction.
members
-on-end
(-on-end _)
Subscription termination notification hook.
-on-error
(-on-error _ error)
Subscription error notification hook.
-on-init
(-on-init _ s)
Subscription initialization hook.
-on-next
(-on-next _ s value)
Subscription data notification hook.
last
(last ob)
(last f ob)
(last f default ob)
Return an observable that only has the last value of the provided observable. You can optionally pass a predicate and default value.
log
(log ob)
(log prefix ob)
Print all values passed through the given observable sequence.
map
(map f ob)
Apply a function to each element of an observable sequence.
map-indexed
(map-indexed f ob)
mapcat
(mapcat f ob)
Projects each element of an observable sequence to an observable sequence and concatenates the resulting observable sequences or Promises or array/iterable into one observable sequence.
mapcat-indexed
(mapcat-indexed f ob)
merge
(merge & more)
Merges all the observable sequences and Promises into a single observable sequence.
merge-all
(merge-all ob)
(merge-all concurrency ob)
Merges an observable sequence of observable sequences into an observable sequence.
merge-map
(merge-map f ob)
Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences or Promises or array/iterable into one observable sequence.
-
In other languages is called: flatMap or mergeMap.
merge-scan
(merge-scan f seed ob)
Applies an accumulator function over the source Observable where the accumulator function itself returns an Observable, then each intermediate Observable returned is merged into the output Observable.
observable?
(observable? ob)
Return true if ob
is a instance of Rx.Observable.
observe-on
(observe-on schd ob)
of
(of a)
(of a b)
(of a b c)
(of a b c d)
(of a b c d e)
(of a b c d e f)
(of a b c d e f & more)
Converts arguments to an observable sequence.
on-complete
A semantic alias for on-end
.
on-end
(on-end ob f)
Subscribes a function to invoke upon graceful termination of the observable sequence.
on-error
(on-error ob f)
Subscribes a function to invoke upon exceptional termination of the observable sequence.
on-next
A semantic alias for on-value
.
on-value
(on-value ob f)
Subscribes a function to invoke for each element in the observable sequence.
pipe
(pipe ob f)
(pipe ob f1 f2)
(pipe ob f1 f2 f3)
(pipe ob f1 f2 f3 f4)
(pipe ob f1 f2 f3 f4 & rest)
pr-log
(pr-log ob)
(pr-log prefix ob)
Print all values passed through the given observable sequence using pr-str.
publish
(publish ob)
Create a connectable (hot) observable from other observable.
push!
(push! b v)
Pushes the given value to the bus stream.
race
(race a b)
(race a b & more)
Create an observable that surfaces any of the given sequences, whichever reacted first.
range
(range b)
(range a b)
Generates an observable sequence that repeats the given element.
reduce
(reduce f ob)
(reduce f seed ob)
Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence.
retry
(retry ob)
(retry n ob)
Given an optional number of retries and an observable, repeats the source observable the specified number of times or until it terminates. If no number of retries is given, it will be retried indefinitely.
sample
(sample ms ob)
Samples the observable sequence at each interval.
sample-when
(sample-when other ob)
Samples the observable sequence at each interval.
scan
(scan f ob)
(scan f seed ob)
Applies an accumulator function over an observable sequence and returns each intermediate result. Same as reduce but with intermediate results
scheduler
(scheduler type)
Get the scheduler instance by type. The posible types are: :asap
, :async
, :queue
. Old :trampoline
type is renamed as :queue
and is deprecated.
scheduler?
(scheduler? v)
Check if the provided value is Scheduler instance.
share
(share ob)
Returns an observable sequence that shares a single subscription to the underlying sequence.
skip
(skip n ob)
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
skip-until
(skip-until pob ob)
Returns the values from the source observable sequence only after the other observable sequence produces a value.
skip-while
(skip-while f ob)
Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements.
subject
(subject)
Subject that, once an Observer has subscribed, emits all subsequently observed items to the subscriber.
subject?
(subject? b)
Check if the provided value is Subject instance.
subs
(subs nf ob)
(subs nf ef ob)
(subs nf ef cf ob)
A specialized version of subscribe
with inverted arguments.
subscribe
(subscribe ob nf)
(subscribe ob nf ef)
(subscribe ob nf ef cf)
Subscribes an observer to the observable sequence.
subscribe-on
(subscribe-on schd ob)
subscribe-with
(subscribe-with ob observer)
Subscribes an observer or subscriber to the observable sequence.
switch-map
(switch-map f obj)
take
(take n ob)
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
take-until
(take-until other ob)
Returns the values from the source observable sequence until the other observable sequence or Promise produces a value.
take-while
(take-while f ob)
Returns elements from an observable sequence as long as a specified predicate returns true.
tap
(tap f ob)
(tap f g ob)
(tap f g e ob)
Invokes an action for each element in the observable sequence.
throttle
(throttle ms ob)
(throttle ms config ob)
Returns an observable sequence that emits only the first item emitted by the source Observable during sequential time windows of a specified duration.
timeout
(timeout ms ob)
(timeout ms other ob)
Returns the source observable sequence or the other observable sequence if dueTime elapses.
timer
(timer delay)
(timer delay period)
Returns an observable sequence that produces a value after ms
has elapsed and then after each period.
to-atom
(to-atom ob)
(to-atom ob a)
(to-atom ob a f)
Materialize the observable sequence into an atom.
to-observable
(to-observable ob)
Coerce a object to an observable instance.
with-latest
deprecated
(with-latest f other source)
Merges the specified observable sequences into one observable sequence by using the selector function only when the source observable sequence (the instance) produces an element.
with-latest-from
(with-latest-from other source)
(with-latest-from o1 o2 source)
(with-latest-from o1 o2 o3 source)
(with-latest-from o1 o2 o3 o4 source)
(with-latest-from o1 o2 o3 o4 o5 source)
(with-latest-from o1 o2 o3 o4 o5 o6 source)
Merges the specified observable sequences into one observable sequence by using the selector function only when the source observable sequence (the instance) produces an element.
zip
(zip & items)
Merges the specified observable sequences or Promises (cljs) into one observable sequence.
\ No newline at end of file
diff --git a/latest/beicon.v2.html b/latest/beicon.v2.html
deleted file mode 100644
index a0d3c3d..0000000
--- a/latest/beicon.v2.html
+++ /dev/null
@@ -1,82 +0,0 @@
-
-beicon.v2
behavior-subject
(behavior-subject v)
Bus that emits the most recent item it has observed and all subsequent observed items to each subscribed Observer.
-
buffer
(buffer n ob)
(buffer n o ob)
Projects each element of an observable sequence into zero or more buffers which are produced based on element count information.
-
buffer-time
(buffer-time ms ob)
(buffer-time ms start ob)
(buffer-time ms start max ob)
Buffers the source Observable values for a specific time period.
-
buffer-until
(buffer-until notifier ob)
Buffers the source Observable values until notifier emits.
-
catch
(catch handler ob)
(catch pred handler ob)
Continues an observable sequence that is terminated by an exception with the next observable sequence.
-
combine-latest
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (constructor).
-
combine-latest-all
(combine-latest-all obs)
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (constructor).
-
A variant of conbine-latest*
that accepts an array or sequential
-
combine-latest-with
(combine-latest-with o1 ob)
(combine-latest-with o1 o2 ob)
(combine-latest-with o1 o2 o3 ob)
(combine-latest-with o1 o2 o3 o4 ob)
(combine-latest-with o1 o2 o3 o4 o5 ob)
(combine-latest-with o1 o2 o3 o4 o5 o6 ob)
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (operator).
-
concat
Concatenates all of the specified observable sequences, as long as the previous observable sequence terminated successfully.
-
concat-all
(concat-all ob)
concat-reduce
(concat-reduce f seed ob)
Like reduce but accepts a function that returns a stream. Will use as value for the next step in the reduce the last valued emited by the stream in the function.
-
connect!
(connect! ob)
Connect the connectable observable.
-
create
(create sf)
Creates an observable sequence from a specified subscribe method implementation.
-
debounce
(debounce ms ob)
Emits an item from the source Observable after a particular timespan has passed without the Observable omitting any other items.
-
delay
(delay ms ob)
Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved.
-
delay-at-least
(delay-at-least ms ob)
Time shifts at least ms
milisseconds.
-
delay-when
(delay-when sf ob)
(delay-when sf sd ob)
Time shifts the observable sequence based on a subscription delay and a delay selector function for each element.
-
disposable?
(disposable? v)
Check if the provided object is disposable (jvm) or subscription (js).
-
dispose!
(dispose! v)
Dispose resources acquired by the subscription.
-
empty
(empty)
Returns an observable sequence that is already in end state.
-
end!
(end! b)
Ends the given bus stream.
-
error!
(error! b e)
Pushes the given error to the bus stream.
-
error!
macro
(error! ob val)
expand
(expand f ob)
Recursively projects each source value to an Observable which is merged in the output Observable.
-
filter
(filter f ob)
Filters the elements of an observable sequence based on a predicate.
-
finalize
(finalize f ob)
Returns an Observable that mirrors the source Observable, but will call a specified function when the source terminates on complete or error.
-
first
(first ob)
Return an observable that only has the first value of the provided observable. You can optionally pass a predicate and default value.
-
fjoin
Runs all observable sequences in parallel and collect their last elements.
-
flatten
(flatten ob)
Just like clojure collections flatten but for rx streams. Given a stream off collections will emit every value separately
-
from
(from v)
Creates an observable from js arrays, clojurescript collections, and promise instance.
-
from-atom
(from-atom atm)
(from-atom atm {:keys [emit-current-value?], :or {emit-current-value? false}})
from-event
(from-event et ev)
Creates an Observable by attaching an event listener to an event target
-
if-empty
(if-empty default ob)
Emits a given value if the source Observable completes without emitting any next value, otherwise mirrors the source Observable.
-
ignore
(ignore ob)
Ignores all elements in an observable sequence leaving only the termination messages.
-
interval
(interval ms)
Returns an observable sequence that produces a value after each period.
-
last
(last ob)
Return an observable that only has the last value of the provided observable. You can optionally pass a predicate and default value.
-
map
(map f ob)
Apply a function to each element of an observable sequence.
-
map-indexed
(map-indexed f ob)
Same as map
but also projects an index.
-
mapcat
(mapcat f ob)
Projects each element of an observable sequence to an observable sequence and concatenates the resulting observable sequences or Promises or array/iterable into one observable sequence.
-
merge
Merges all the observable sequences and Promises into a single observable sequence.
-
merge-all
(merge-all ob)
(merge-all concurrency ob)
Merges an observable sequence of observable sequences into an observable sequence.
-
merge-map
(merge-map f ob)
Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences or Promises or array/iterable into one observable sequence.
-
In other languages is called: flatMap or mergeMap.
-
merge-scan
(merge-scan f seed ob)
Applies an accumulator function over the source Observable where the accumulator function itself returns an Observable, then each intermediate Observable returned is merged into the output Observable.
-
observable?
(observable? ob)
Return true if ob
is a instance of Rx.Observable.
-
observe-on
(observe-on sch ob)
of
Converts arguments to an observable sequence
-
publish!
(publish! ob)
Create a connectable (hot) observable from other observable.
-
push!
(push! b v)
Pushes the given value to the bus stream.
-
race
Create an observable that surfaces any of the given sequences, whichever reacted first.
-
range
(range b)
(range a b)
Generates an observable sequence that repeats the given element.
-
reduce
(reduce f seed ob)
Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence.
-
retry
(retry ob)
(retry n ob)
Given an optional number of retries and an observable, repeats the source observable the specified number of times or until it terminates. If no number of retries is given, it will be retried indefinitely.
-
sample
(sample ms ob)
Samples the observable sequence at each interval.
-
sample-when
(sample-when other ob)
Samples the observable sequence at each interval.
-
scan
(scan f seed ob)
Applies an accumulator function over an observable sequence and returns each intermediate result. Same as reduce but with intermediate results
-
scheduler
(scheduler type)
Get the scheduler instance by type. The posible types are: :asap
, :async
, :queue
. Old :trampoline
type is renamed as :queue
and is deprecated.
-
scheduler?
(scheduler? v)
Check if the provided value is Scheduler instance.
-
share
(share ob)
Returns an observable sequence that shares a single subscription to the underlying sequence.
-
skip
(skip n ob)
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
-
skip-last
(skip-last n ob)
Skip a specified number of values before the completion of an observable.
-
skip-until
(skip-until pob ob)
Returns the values from the source observable sequence only after the other observable sequence produces a value.
-
skip-while
(skip-while f ob)
Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements.
-
sub!
(sub! ob nf)
(sub! ob next-fn error-fn)
(sub! ob next-fn error-fn complete-fn)
Subscribes an observer to the observable sequence.
-
subject
(subject)
Subject that, once an Observer has subscribed, emits all subsequently observed items to the subscriber.
-
subject?
(subject? b)
Check if the provided value is Subject instance.
-
subs!
(subs! nf ob)
(subs! nf ef ob)
(subs! nf ef cf ob)
A specialized version of subscribe
with inverted arguments.
-
subscribe
(subscribe ob nf)
(subscribe ob next-fn error-fn)
(subscribe ob next-fn error-fn complete-fn)
Subscribes an observer to the observable sequence.
-
subscribe-on
(subscribe-on sch ob)
subscriber?
(subscriber? o)
switch-map
(switch-map f ob)
take
(take n ob)
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
-
take-last
(take-last n ob)
take-until
(take-until other ob)
Returns the values from the source observable sequence until the other observable sequence or Promise produces a value.
-
take-while
(take-while f ob)
Returns elements from an observable sequence as long as a specified predicate returns true.
-
tap
(tap f ob)
(tap f e ob)
(tap f e c ob)
Invokes an action for each element in the observable sequence.
-
throttle
(throttle ms ob)
(throttle ms config ob)
Returns an observable sequence that emits only the first item emitted by the source Observable during sequential time windows of a specified duration.
-
throw
(throw e)
Returns an exceptionally terminated observable with provided cause.
-
timeout
(timeout ms ob)
(timeout ms with ob)
Returns the source observable sequence or the other observable sequence if dueTime elapses.
-
timer
Returns an observable sequence that produces a value after ms
has elapsed and then after each period.
-
to-atom
(to-atom ob)
(to-atom ob a)
(to-atom ob a f)
Materialize the observable sequence into an atom.
-
to-observable
(to-observable ob)
Coerce a object to an observable instance.
-
with-latest-from
(with-latest-from o1 source)
(with-latest-from o1 o2 source)
(with-latest-from o1 o2 o3 source)
(with-latest-from o1 o2 o3 o4 source)
(with-latest-from o1 o2 o3 o4 o5 source)
(with-latest-from o1 o2 o3 o4 o5 o6 source)
Merges the specified observable sequences into one observable sequence by using the selector function only when the source observable sequence (the instance) produces an element.
-
zip
Merges the specified observable sequences or Promises (cljs) into one observable sequence.
-
\ No newline at end of file
diff --git a/latest/beicon.v2.ops.html b/latest/beicon.v2.ops.html
deleted file mode 100644
index 11720cc..0000000
--- a/latest/beicon.v2.ops.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-beicon.v2.ops
buffer
Projects each element of an observable sequence into zero or more buffers which are produced based on element count information.
-
buffer-time
Buffers the source Observable values for a specific time period. (operator only)
-
buffer-until
Buffers the source Observable values until notifier emits.
-
catch
(catch handler)
Continues an observable sequence that is terminated by an exception with the next observable sequence.
-
combine-latest
Combines multiple Observables to create an Observable whose values are calculated from the latest values of each of its input Observables (operator).
-
debounce
Emits an item from the source Observable after a particular timespan has passed without the Observable omitting any other items.
-
delay
Time shifts the observable sequence by dueTime. The relative time intervals between the values are preserved.
-
delay-at-least
(delay-at-least ms)
Time shifts at least ms
milisseconds.
-
delay-when
Time shifts the observable sequence based on a subscription delay and a delay selector function for each element.
-
distinct
(distinct)
(distinct comparator-fn)
(distinct comparator-fn key-fn)
Returns an observable sequence that contains only distinct elements.
-
Usage of this operator should be considered carefully due to the maintenance of an internal lookup structure which can grow large.
-
distinct-contiguous
(distinct-contiguous)
(distinct-contiguous comparator-fn)
(distinct-contiguous comparator-fn key-fn)
Returns an observable sequence that contains only distinct contiguous elements.
-
expand
(expand f)
(expand f c)
Recursively projects each source value to an Observable which is merged in the output Observable.
-
filter
(filter f)
Filters the elements of an observable sequence based on a predicate.
-
finalize
Returns an Observable that mirrors the source Observable, but will call a specified function when the source terminates on complete or error.
-
if-empty
Emits a given value if the source Observable completes without emitting any next value, otherwise mirrors the source Observable.
-
ignore
Ignores all elements in an observable sequence leaving only the termination messages.
-
map-indexed
(map-indexed)
(map-indexed f)
Same as map
but also projects an index.
-
mapcat
(mapcat f)
Projects each element of an observable sequence to an observable sequence and concatenates the resulting observable sequences or Promises or array/iterable into one observable sequence.
-
mapcat-indexed
(mapcat-indexed f)
Indexed variant of mapcat
-
merge-all
Merges an observable sequence of observable sequences into an observable sequence.
-
merge-map
(merge-map f)
(merge-map f concurrency)
Projects each element of an observable sequence to an observable sequence and merges the resulting observable sequences or Promises or array/iterable into one observable sequence.
-
In other languages is called: flatMap or mergeMap.
-
merge-scan
(merge-scan f seed)
Applies an accumulator function over the source Observable where the accumulator function itself returns an Observable, then each intermediate Observable returned is merged into the output Observable.
-
observe-on
(observe-on sch)
(observe-on sch delay)
reduce
(reduce f seed)
Applies an accumulator function over an observable sequence, returning the result of the aggregation as a single element in the result sequence.
-
retry
Given an optional number of retries and an observable, repeats the source observable the specified number of times or until it terminates. If no number of retries is given, it will be retried indefinitely.
-
sample
Samples the observable sequence at each interval.
-
sample-when
Samples the observable sequence at each interval.
-
scan
(scan f seed)
Applies an accumulator function over an observable sequence and returns each intermediate result. Same as reduce but with intermediate results
-
share
Returns an observable sequence that shares a single subscription to the underlying sequence.
-
skip
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
-
skip-last
(skip-last n)
Skip a specified number of values before the completion of an observable.
-
skip-until
(skip-until pob)
Returns the values from the source observable sequence only after the other observable sequence produces a value.
-
skip-while
(skip-while f)
Bypasses elements in an observable sequence as long as a specified condition is true and then returns the remaining elements.
-
subscribe-on
(subscribe-on sch)
(subscribe-on sch delay)
take
Bypasses a specified number of elements in an observable sequence and then returns the remaining elements.
-
take-until
Returns the values from the source observable sequence until the other observable sequence or Promise produces a value.
-
take-while
(take-while f)
Returns elements from an observable sequence as long as a specified predicate returns true.
-
tap
(tap f)
(tap f e)
(tap f e c)
Invokes an action for each element in the observable sequence.
-
throttle
(throttle ms)
(throttle ms config)
Returns an observable sequence that emits only the first item emitted by the source Observable during sequential time windows of a specified duration.
-
(operator only)
-
timeout
(timeout ms)
(timeout ms with)
Returns the source observable sequence or the other observable sequence if dueTime elapses.
-
with-latest
Merges the specified observable sequences into one observable sequence by using the selector function only when the source observable sequence (the instance) produces an element.
-
(operator)
-
\ No newline at end of file
diff --git a/latest/rumext.v2.util.html b/latest/rumext.v2.util.html
deleted file mode 100644
index 4d4bf4b..0000000
--- a/latest/rumext.v2.util.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
-rumext.v2.util
obj->map
(obj->map obj)
Convert shallowly an js object to cljs map.
-
props-equals?
(props-equals? eq? new-props old-props)
wrap-props
(wrap-props props)
\ No newline at end of file