org_eclipse_lemminx_extensions_prolog_PrologCompletionExtensionsTest_java
org.eclipse.lemminx.commons.snippets.SnippetRegistry
public List<CompletionItem> getCompletionItems(Range replaceRange, String lineDelimiter, boolean canSupportMarkdown, boolean snippetsSupported, BiPredicate<ISnippetContext<?>, Map<String, String>> contextFilter, ISuffixPositionProvider suffixProvider) {
        if (replaceRange == null) {
            return Collections.emptyList();
        }
        HashMap model = new HashMap();
        return this.getSnippets().stream().filter(snippet -> snippet.match(contextFilter, model)).map(snippet -> {
            Position end;
            CompletionItem item = new CompletionItem();
            item.setLabel(snippet.getLabel());
            String insertText = SnippetRegistry.getInsertText(snippet, model, !snippetsSupported, lineDelimiter);
            item.setKind(CompletionItemKind.Snippet);
            item.setDocumentation(Either.forRight(SnippetRegistry.createDocumentation(snippet, model, canSupportMarkdown, lineDelimiter)));
            String prefix = snippet.getPrefixes().get(0);
            item.setFilterText(prefix);
            item.setDetail(snippet.getDescription());
            Range range = replaceRange;
            if (!StringUtils.isEmpty(snippet.getSuffix()) && suffixProvider != null && (end = suffixProvider.findSuffixPosition(snippet.getSuffix())) != null) {
                range = new Range(replaceRange.getStart(), end);
            }
            item.setTextEdit(Either.forLeft(new TextEdit(range, insertText)));
            item.setInsertTextFormat(InsertTextFormat.Snippet);
            item.setSortText(snippet.getSortText());
            return item;
        }).collect(Collectors.toList());
    }
 -> java.util.List.stream(): java.util.stream.Stream -> java.util.stream.Stream.filter(java.util.function.Predicate): java.util.stream.Stream -> java.util.stream.Stream.map(java.util.function.Function): java.util.stream.Stream -> java.util.stream.Collectors.toList(): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.lang.String.length(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.get(int): java.lang.Object -> java.lang.String.isEmpty(): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.get(int): java.lang.Object -> java.lang.String.length(): int -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.List.get(int): java.lang.Object -> java.lang.String.isEmpty(): boolean -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean
 [CALL] [CALL] [EXIT] -> java.util.List.stream(): java.util.stream.Stream -> java.util.stream.Stream.filter(java.util.function.Predicate): java.util.stream.Stream -> java.util.stream.Stream.map(java.util.function.Function): java.util.stream.Stream -> java.util.stream.Collectors.toList(): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.length(): int [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] [EXIT] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.Integer.valueOf(int): java.lang.Integer [EXIT] -> java.lang.Integer.intValue(): int [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.isEmpty(): boolean -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.get(int): java.lang.Object [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.String.length(): int [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(int,int): int -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.String.charAt(int): char -> java.lang.Character.isDigit(char): boolean -> java.lang.String.substring(int,int): java.lang.String -> java.util.Map.containsKey(java.lang.Object): boolean [CALL] -> java.lang.String.indexOf(java.lang.String,int): int -> java.lang.String.length(): int -> java.lang.StringBuilder.append(java.lang.CharSequence,int,int): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.util.Iterator.hasNext(): boolean -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] -> java.lang.String.isEmpty(): boolean [EXIT] [CALL] [EXIT] [CALL] -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Character.isWhitespace(char): boolean [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.charAt(int): char -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.lang.Integer.intValue(): int -> java.lang.String.length(): int -> java.lang.String.length(): int -> java.lang.Integer.valueOf(int): java.lang.Integer [EXIT] -> java.lang.Integer.intValue(): int [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean -> java.lang.String.endsWith(java.lang.String): boolean [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.function.BiPredicate.test(java.lang.Object,java.lang.Object): boolean [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT]