| Package | Description |
|---|---|
| com.landawn.abacus | |
| com.landawn.abacus.util | |
| com.landawn.abacus.util.function |
| Modifier and Type | Method and Description |
|---|---|
<E extends Exception> |
DataSet.combineColumns(Throwables.Predicate<String,E> columnNameFilter,
String newColumnName,
Class<?> newColumnClass) |
<E extends Exception,E2 extends Exception> |
DataSet.combineColumns(Throwables.Predicate<String,E> columnNameFilter,
String newColumnName,
Throwables.Function<? super NoCachingNoUpdating.DisposableObjArray,?,E2> combineFunc) |
<E extends Exception> |
DataSet.filter(Collection<String> columnNames,
int fromRowIndex,
int toRowIndex,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter) |
<E extends Exception> |
DataSet.filter(Collection<String> columnNames,
int fromRowIndex,
int toRowIndex,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter,
int max) |
<E extends Exception> |
DataSet.filter(Collection<String> columnNames,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter) |
<E extends Exception> |
DataSet.filter(Collection<String> columnNames,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter,
int max) |
<E extends Exception> |
DataSet.filter(int fromRowIndex,
int toRowIndex,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter) |
<E extends Exception> |
DataSet.filter(int fromRowIndex,
int toRowIndex,
Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter,
int max) |
<T,E extends Exception> |
DataSet.filter(String columnName,
int fromRowIndex,
int toRowIndex,
Throwables.Predicate<T,E> filter) |
<T,E extends Exception> |
DataSet.filter(String columnName,
int fromRowIndex,
int toRowIndex,
Throwables.Predicate<T,E> filter,
int max) |
<T,E extends Exception> |
DataSet.filter(String columnName,
Throwables.Predicate<T,E> filter) |
<T,E extends Exception> |
DataSet.filter(String columnName,
Throwables.Predicate<T,E> filter,
int max) |
<E extends Exception> |
DataSet.filter(Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter) |
<E extends Exception> |
DataSet.filter(Throwables.Predicate<? super NoCachingNoUpdating.DisposableObjArray,E> filter,
int max) |
<E extends Exception> |
DataSet.removeColumns(Throwables.Predicate<String,E> filter)
Removes the columns.
|
<E extends Exception> |
DataSet.removeColumnsIf(Throwables.Predicate<String,E> filter)
Deprecated.
|
<E extends Exception> |
DataSet.replaceIf(Throwables.Predicate<?,E> func,
Object newValue)
Replace all the values in this DataSet with the specified new value if it matches the specified condition.
|
<T,E extends Exception,E2 extends Exception> |
DataSet.toList(Class<? extends T> rowClass,
Throwables.Predicate<? super String,E> columnFilter,
Throwables.Function<? super String,String,E2> columnConverter) |
<T,E extends Exception,E2 extends Exception> |
DataSet.toList(Class<? extends T> rowClass,
Throwables.Predicate<? super String,E> columnFilter,
Throwables.Function<? super String,String,E2> columnConverter,
int fromRowIndex,
int toRowIndex) |
| Modifier and Type | Method and Description |
|---|---|
static <T,E extends Exception> |
Fn.Fnn.alwaysFalse() |
static <T,E extends Exception> |
Fn.Fnn.alwaysTrue() |
static <K,V,E extends Exception> |
Fn.Entries.ep(Throwables.BiPredicate<? super K,? super V,E> p) |
static <T,E extends Exception> |
Fn.Fnn.isNull() |
static <T extends CharSequence,E extends Exception> |
Fn.Fnn.isNullOrEmpty() |
static <T,E extends Exception> |
Fn.Fnn.isNullOrEmptyA() |
static <T extends Collection,E extends Exception> |
Fn.Fnn.isNullOrEmptyC() |
static <T extends Map,E extends Exception> |
Fn.Fnn.isNullOrEmptyM() |
static <T,E extends Throwable> |
Fn.Fnn.not(Throwables.Predicate<T,E> predicate) |
static <T,E extends Exception> |
Fn.Fnn.notNull() |
static <T extends CharSequence,E extends Exception> |
Fn.Fnn.notNullOrEmpty() |
static <T,E extends Exception> |
Fn.Fnn.notNullOrEmptyA() |
static <T extends Collection,E extends Exception> |
Fn.Fnn.notNullOrEmptyC() |
static <T extends Map,E extends Exception> |
Fn.Fnn.notNullOrEmptyM() |
static <A,B,T,E extends Throwable> |
Fn.Fnn.p(A a,
B b,
Throwables.TriPredicate<A,B,T,E> triPredicate) |
static <A,T,E extends Throwable> |
Fn.Fnn.p(A a,
Throwables.BiPredicate<A,T,E> biPredicate) |
static <T,E extends Throwable> |
Fn.Fnn.p(Throwables.Predicate<T,E> predicate) |
static <A,T,E extends Throwable> |
Fn.Fnn.pp(A a,
BiPredicate<A,T> biPredicate) |
static <A,B,T,E extends Throwable> |
Fn.Fnn.pp(A a,
B b,
TriPredicate<A,B,T> triPredicate) |
static <T,E extends Throwable> |
Fn.Fnn.pp(Predicate<T> predicate) |
static <A,B,T,E extends Throwable> |
Fn.Fnn.sp(Object mutex,
A a,
B b,
Throwables.TriPredicate<A,B,T,E> triPredicate)
Synchronized
Predicate. |
static <A,T,E extends Throwable> |
Fn.Fnn.sp(Object mutex,
A a,
Throwables.BiPredicate<A,T,E> biPredicate)
Synchronized
Predicate. |
static <T,E extends Throwable> |
Fn.Fnn.sp(Object mutex,
Throwables.Predicate<T,E> predicate)
Synchronized
Predicate. |
static <K,V,E extends Throwable> |
Fn.Fnn.testByKey(Throwables.Predicate<? super K,E> predicate) |
static <K,V,E extends Throwable> |
Fn.Fnn.testByValue(Throwables.Predicate<? super V,E> predicate) |
| Modifier and Type | Method and Description |
|---|---|
static <T,E extends Exception> |
N.allMatch(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.allMatch(Iterator<? extends T> iter,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.allMatch(T[] a,
Throwables.Predicate<? super T,E> filter) |
boolean |
ExceptionalStream.allMatch(Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Exception> |
N.anyMatch(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.anyMatch(Iterator<? extends T> iter,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.anyMatch(T[] a,
Throwables.Predicate<? super T,E> filter) |
boolean |
ExceptionalStream.anyMatch(Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Exception> |
N.count(Collection<? extends T> c,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter)
Mostly it's designed for one-step operation to complete the operation in one step.
|
static <T,E extends Exception> |
N.count(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter)
Mostly it's designed for one-step operation to complete the operation in one step.
|
static <T,E extends Exception> |
Iterators.count(Iterator<? extends T> iter,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.count(Iterator<? extends T> iter,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.count(T[] a,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter)
Mostly it's designed for one-step operation to complete the operation in one step.
|
static <T,E extends Exception> |
N.count(T[] a,
Throwables.Predicate<? super T,E> filter)
Mostly it's designed for one-step operation to complete the operation in one step.
|
<K> ExceptionalStream<T,E> |
ExceptionalStream.distinctBy(Throwables.Function<? super T,K,? extends E> keyMapper,
Throwables.Predicate<? super Long,? extends E> occurrencesFilter)
Distinct and filter by occurrences.
|
static <T,E extends Exception> |
N.dropWhile(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter)
Drop while.
|
static <T,E extends Exception> |
N.dropWhile(T[] a,
Throwables.Predicate<? super T,E> filter)
Drop while.
|
ExceptionalStream<T,E> |
ExceptionalStream.dropWhile(Throwables.Predicate<? super T,? extends E> predicate) |
ExceptionalStream<T,E> |
ExceptionalStream.dropWhile(Throwables.Predicate<? super T,? extends E> predicate,
Throwables.Consumer<? super T,? extends E> actionOnDroppedItem) |
static <T,E extends Exception> |
N.filter(Collection<? extends T> c,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.filter(Collection<? extends T> c,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
int max) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(Collection<? extends T> c,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
IntFunction<R> supplier) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(Collection<? extends T> c,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
int max,
IntFunction<R> supplier) |
static <T,E extends Exception> |
N.filter(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.filter(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter,
int max) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter,
IntFunction<R> supplier) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter,
int max,
IntFunction<R> supplier) |
static <T,E extends Exception> |
N.filter(T[] a,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.filter(T[] a,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
int max)
Mostly it's designed for one-step operation to complete the operation in one step.
|
static <T,R extends Collection<T>,E extends Exception> |
N.filter(T[] a,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
IntFunction<R> supplier) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(T[] a,
int fromIndex,
int toIndex,
Throwables.Predicate<? super T,E> filter,
int max,
IntFunction<R> supplier)
Mostly it's designed for one-step operation to complete the operation in one step.
|
static <T,E extends Exception> |
N.filter(T[] a,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.filter(T[] a,
Throwables.Predicate<? super T,E> filter,
int max) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(T[] a,
Throwables.Predicate<? super T,E> filter,
IntFunction<R> supplier) |
static <T,R extends Collection<T>,E extends Exception> |
N.filter(T[] a,
Throwables.Predicate<? super T,E> filter,
int max,
IntFunction<R> supplier) |
<E extends Exception> |
Pair.filter(Throwables.Predicate<? super Pair<L,R>,E> predicate) |
ExceptionalStream<T,E> |
ExceptionalStream.filter(Throwables.Predicate<? super T,? extends E> predicate) |
ExceptionalStream<T,E> |
ExceptionalStream.filter(Throwables.Predicate<? super T,? extends E> predicate,
Throwables.Consumer<? super T,? extends E> actionOnDroppedItem) |
<E extends Exception> |
Multiset.filter(Throwables.Predicate<? super T,E> filter) |
<E extends Exception> |
u.Optional.filter(Throwables.Predicate<? super T,E> predicate) |
<E extends Exception> |
u.Nullable.filter(Throwables.Predicate<? super T,E> predicate) |
<E extends Exception> |
Tuple.filter(Throwables.Predicate<? super TP,E> predicate) |
<E extends Exception> |
Triple.filter(Throwables.Predicate<? super Triple<L,M,R>,E> predicate) |
static <K,V,E extends Exception> |
Maps.filterByKey(Map<K,V> map,
Throwables.Predicate<? super K,E> predicate)
Filter by key.
|
<X extends Exception> |
ListMultimap.filterByKey(Throwables.Predicate<? super K,X> filter)
Filter by key.
|
<X extends Exception> |
Multimap.filterByKey(Throwables.Predicate<? super K,X> filter)
Filter by key.
|
<X extends Exception> |
SetMultimap.filterByKey(Throwables.Predicate<? super K,X> filter)
Filter by key.
|
static <K,V,E extends Exception> |
Maps.filterByValue(Map<K,V> map,
Throwables.Predicate<? super V,E> predicate)
Filter by value.
|
<X extends Exception> |
ListMultimap.filterByValue(Throwables.Predicate<? super List<E>,X> filter)
Filter by value.
|
<X extends Exception> |
SetMultimap.filterByValue(Throwables.Predicate<? super Set<E>,X> filter)
Filter by value.
|
<X extends Exception> |
Multimap.filterByValue(Throwables.Predicate<? super V,X> filter)
Filter by value.
|
<E extends Exception> |
u.Nullable.filterIfNotNull(Throwables.Predicate<? super T,E> predicate)
Filter if not null.
|
u.Optional<T> |
ExceptionalStream.findAny(Throwables.Predicate<? super T,E> predicate) |
u.Optional<T> |
ExceptionalStream.findFirst(Throwables.Predicate<? super T,E> predicate) |
u.Optional<T> |
ExceptionalStream.findLast(Throwables.Predicate<? super T,E> predicate)
Consider using:
stream.reversed().findFirst(predicate) for better performance if possible. |
static <E extends Exception> |
ClassUtil.getClassesByPackage(String pkgName,
boolean isRecursive,
boolean skipClassLoaddingException,
Throwables.Predicate<? super Class<?>,E> predicate)
Gets the classes by package.
|
static <E extends Exception> |
ClassUtil.getPropNames(Object entity,
Throwables.Predicate<Object,E> propValueFilter) |
static <T,E extends Exception> |
ExceptionalStream.iterate(T init,
Throwables.Predicate<? super T,? extends E> hasNext,
Throwables.UnaryOperator<T,? extends E> f) |
static <T> ExceptionalStream<T,RuntimeException> |
ExceptionalStream.Seq.iterate(T init,
Throwables.Predicate<? super T,RuntimeException> hasNext,
Throwables.UnaryOperator<T,RuntimeException> f) |
static <E extends Exception> |
CSVUtil.loadCSV(Class<?> entityClass,
File csvFile,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(Class<?> entityClass,
InputStream csvInputStream,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(Class<?> entityClass,
Reader csvReader,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(File csvFile,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(File csvFile,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
List<? extends com.landawn.abacus.type.Type> columnTypeList)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(File csvFile,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
Map<String,? extends com.landawn.abacus.type.Type> columnTypeMap)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(InputStream csvInputStream,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(InputStream csvInputStream,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
List<? extends com.landawn.abacus.type.Type> columnTypeList)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(InputStream csvInputStream,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
Map<String,? extends com.landawn.abacus.type.Type> columnTypeMap)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(Reader csvReader,
Collection<String> selectColumnNames,
long offset,
long count,
Throwables.Predicate<String[],E> filter)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(Reader csvReader,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
List<? extends com.landawn.abacus.type.Type> columnTypeList)
Load the data from CSV.
|
static <E extends Exception> |
CSVUtil.loadCSV(Reader csvReader,
long offset,
long count,
Throwables.Predicate<String[],E> filter,
Map<String,? extends com.landawn.abacus.type.Type> columnTypeMap)
Load the data from CSV.
|
static <T,E extends Exception> |
N.nMatch(Collection<? extends T> c,
int atLeast,
int atMost,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.nMatch(Iterator<? extends T> iter,
int atLeast,
int atMost,
Throwables.Predicate<? super T,E> filter) |
boolean |
ExceptionalStream.nMatch(long atLeast,
long atMost,
Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Exception> |
N.nMatch(T[] a,
int atLeast,
int atMost,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.noneMatch(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.noneMatch(Iterator<? extends T> iter,
Throwables.Predicate<? super T,E> filter) |
static <T,E extends Exception> |
N.noneMatch(T[] a,
Throwables.Predicate<? super T,E> filter) |
boolean |
ExceptionalStream.noneMatch(Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Throwable> |
Fn.Fnn.not(Throwables.Predicate<T,E> predicate) |
static <K,V,E extends Exception> |
ExceptionalStream.ofKeys(Map<K,V> map,
Throwables.Predicate<? super V,E> valueFilter) |
static <K,V> ExceptionalStream<K,RuntimeException> |
ExceptionalStream.Seq.ofKeys(Map<K,V> map,
Throwables.Predicate<? super V,RuntimeException> valueFilter) |
static <K,V,E extends Exception> |
ExceptionalStream.ofValues(Map<K,V> map,
Throwables.Predicate<? super K,E> keyFilter) |
static <K,V> ExceptionalStream<V,RuntimeException> |
ExceptionalStream.Seq.ofValues(Map<K,V> map,
Throwables.Predicate<? super K,RuntimeException> keyFilter) |
static <T,E extends Throwable> |
Fn.Fnn.p(Throwables.Predicate<T,E> predicate) |
static <T,E extends Exception> |
Fn.pp(Throwables.Predicate<T,E> predicate) |
<X extends Exception> |
Multimap.removeAllIf(Collection<?> values,
Throwables.Predicate<? super K,X> predicate)
Remove the specified values (all occurrences) from the value set associated with keys which satisfy the specified
predicate. |
<X extends Exception> |
Multimap.removeAllIf(Throwables.Predicate<? super K,X> predicate)
Remove all the values associated with keys which satisfy the specified
predicate. |
<E extends Exception> |
Multiset.removeAllOccurrencesIf(Throwables.Predicate<? super T,E> predicate)
Removes the all occurrences if.
|
<X extends Exception> |
Multimap.removeIf(E value,
Throwables.Predicate<? super K,X> predicate)
Remove the specified value (one occurrence) from the value set associated with keys which satisfy the specified
predicate. |
<E extends Exception> |
Multiset.removeIf(int occurrencesToRemove,
Throwables.Predicate<? super T,E> predicate)
Removes the if.
|
static <K,V,E extends Exception> |
Maps.removeIf(Map<K,V> map,
Throwables.Predicate<? super Map.Entry<K,V>,E> filter)
Removes entries from the specified
map by the the specified filter. |
static <K,V,E extends Exception> |
Maps.removeIfKey(Map<K,V> map,
Throwables.Predicate<? super K,E> filter)
Removes entries from the specified
map by the the specified filter. |
static <K,V,E extends Exception> |
Maps.removeIfValue(Map<K,V> map,
Throwables.Predicate<? super V,E> filter)
Removes entries from the specified
map by the the specified filter. |
<X extends Exception> |
Multimap.replaceAllIf(Throwables.Predicate<? super K,X> predicate,
Collection<? extends E> oldValues,
E newValue)
Deprecated.
|
<X extends Exception> |
Multimap.replaceAllIf(Throwables.Predicate<? super K,X> predicate,
E oldValue,
E newValue)
Replace the specified
oldValue (all occurrences) from the value set associated with keys which satisfy the specified predicate with the specified newValue. |
static <T,E extends Exception> |
N.replaceIf(List<T> c,
Throwables.Predicate<? super T,E> predicate,
T newValue) |
static <T,E extends Exception> |
N.replaceIf(T[] a,
Throwables.Predicate<? super T,E> predicate,
T newValue) |
<X extends Exception> |
Multimap.replaceIf(Throwables.Predicate<? super K,X> predicate,
E oldValue,
E newValue)
Replace the specified
oldValue (one occurrence) from the value set associated with keys which satisfy the specified predicate with the specified newValue. |
<E extends Exception> |
Multiset.replaceIf(Throwables.Predicate<? super T,E> predicate,
int newOccurrences) |
static <T,E extends Exception> |
N.skipUntil(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter)
Skip until.
|
static <T,E extends Exception> |
N.skipUntil(T[] a,
Throwables.Predicate<? super T,E> filter)
Skip until.
|
ExceptionalStream<T,E> |
ExceptionalStream.skipUntil(Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Throwable> |
Fn.Fnn.sp(Object mutex,
Throwables.Predicate<T,E> predicate)
Synchronized
Predicate. |
static <T,E extends Exception> |
N.takeWhile(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter)
Take while.
|
static <T,E extends Exception> |
N.takeWhile(T[] a,
Throwables.Predicate<? super T,E> filter)
Take while.
|
ExceptionalStream<T,E> |
ExceptionalStream.takeWhile(Throwables.Predicate<? super T,? extends E> predicate) |
static <T,E extends Exception> |
N.takeWhileInclusive(Collection<? extends T> c,
Throwables.Predicate<? super T,E> filter)
Take while inclusive.
|
static <T,E extends Exception> |
N.takeWhileInclusive(T[] a,
Throwables.Predicate<? super T,E> filter)
Take while inclusive.
|
static <K,V,E extends Throwable> |
Fn.Fnn.testByKey(Throwables.Predicate<? super K,E> predicate) |
static <K,V,E extends Throwable> |
Fn.Fnn.testByValue(Throwables.Predicate<? super V,E> predicate) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
Predicate<T>
Refer to JDK API documentation at: https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html
|
Copyright © 2021. All rights reserved.