Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

<groupId>com.github.odiszapc</groupId>
<artifactId>nginxparser</artifactId>
<version>0.9.7</version>
<version>0.9.8</version>
<packaging>jar</packaging>

<name>${project.groupId}:${project.artifactId}</name>
Expand Down Expand Up @@ -71,7 +71,7 @@
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr4-runtime</artifactId>
<version>4.5.3</version>
<version>4.13.2</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -103,6 +103,20 @@
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,13 @@
public class NgxComment extends NgxAbstractEntry {

public NgxComment(String comment) {
getTokens().add(new NgxToken(comment.substring(1)));
comment = comment.replaceAll("[\n\r]", "");
NgxToken token;
if (comment.startsWith("#"))
token = new NgxToken(comment.substring(1));
else
token = new NgxToken(comment);
getTokens().add(token);
}

@Override
Expand Down
64 changes: 64 additions & 0 deletions src/main/java/com/github/odiszapc/nginxparser/antlr/Nginx.interp
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
token literal names:
null
';'
'{'
'}'
'if'
'('
')'
'\\.'
'^'
'location'
'rewrite'
'last'
'break'
'redirect'
'permanent'
null
null
null
null
null
null
null

token symbolic names:
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
Value
STR_EXT
Comment
REGEXP_PREFIXED
QUOTED_STRING
SINGLE_QUOTED
WS

rule names:
config
statement
genericStatement
regexHeaderStatement
block
genericBlockHeader
if_statement
if_body
regexp
locationBlockHeader
rewriteStatement


atn:
[4, 1, 21, 184, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 4, 0, 31, 8, 0, 11, 0, 12, 0, 32, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 44, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 5, 2, 55, 8, 2, 10, 2, 12, 2, 58, 9, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 71, 8, 4, 1, 4, 3, 4, 74, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 5, 4, 88, 8, 4, 10, 4, 12, 4, 91, 9, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 5, 5, 102, 8, 5, 10, 5, 12, 5, 105, 9, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 112, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 118, 8, 6, 10, 6, 12, 6, 121, 9, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 130, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 137, 8, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 4, 8, 152, 8, 8, 11, 8, 12, 8, 153, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 160, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 167, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 176, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 182, 8, 10, 1, 10, 0, 0, 11, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 0, 1, 1, 0, 11, 14, 200, 0, 30, 1, 0, 0, 0, 2, 43, 1, 0, 0, 0, 4, 47, 1, 0, 0, 0, 6, 59, 1, 0, 0, 0, 8, 70, 1, 0, 0, 0, 10, 94, 1, 0, 0, 0, 12, 106, 1, 0, 0, 0, 14, 124, 1, 0, 0, 0, 16, 151, 1, 0, 0, 0, 18, 155, 1, 0, 0, 0, 20, 168, 1, 0, 0, 0, 22, 23, 3, 2, 1, 0, 23, 24, 6, 0, -1, 0, 24, 31, 1, 0, 0, 0, 25, 26, 3, 8, 4, 0, 26, 27, 6, 0, -1, 0, 27, 31, 1, 0, 0, 0, 28, 29, 5, 17, 0, 0, 29, 31, 6, 0, -1, 0, 30, 22, 1, 0, 0, 0, 30, 25, 1, 0, 0, 0, 30, 28, 1, 0, 0, 0, 31, 32, 1, 0, 0, 0, 32, 30, 1, 0, 0, 0, 32, 33, 1, 0, 0, 0, 33, 1, 1, 0, 0, 0, 34, 35, 3, 20, 10, 0, 35, 36, 6, 1, -1, 0, 36, 44, 1, 0, 0, 0, 37, 38, 3, 4, 2, 0, 38, 39, 6, 1, -1, 0, 39, 44, 1, 0, 0, 0, 40, 41, 3, 6, 3, 0, 41, 42, 6, 1, -1, 0, 42, 44, 1, 0, 0, 0, 43, 34, 1, 0, 0, 0, 43, 37, 1, 0, 0, 0, 43, 40, 1, 0, 0, 0, 44, 45, 1, 0, 0, 0, 45, 46, 5, 1, 0, 0, 46, 3, 1, 0, 0, 0, 47, 48, 5, 15, 0, 0, 48, 56, 6, 2, -1, 0, 49, 50, 5, 15, 0, 0, 50, 55, 6, 2, -1, 0, 51, 52, 3, 16, 8, 0, 52, 53, 6, 2, -1, 0, 53, 55, 1, 0, 0, 0, 54, 49, 1, 0, 0, 0, 54, 51, 1, 0, 0, 0, 55, 58, 1, 0, 0, 0, 56, 54, 1, 0, 0, 0, 56, 57, 1, 0, 0, 0, 57, 5, 1, 0, 0, 0, 58, 56, 1, 0, 0, 0, 59, 60, 5, 18, 0, 0, 60, 61, 6, 3, -1, 0, 61, 62, 5, 15, 0, 0, 62, 63, 6, 3, -1, 0, 63, 7, 1, 0, 0, 0, 64, 65, 3, 18, 9, 0, 65, 66, 6, 4, -1, 0, 66, 71, 1, 0, 0, 0, 67, 68, 3, 10, 5, 0, 68, 69, 6, 4, -1, 0, 69, 71, 1, 0, 0, 0, 70, 64, 1, 0, 0, 0, 70, 67, 1, 0, 0, 0, 71, 73, 1, 0, 0, 0, 72, 74, 5, 17, 0, 0, 73, 72, 1, 0, 0, 0, 73, 74, 1, 0, 0, 0, 74, 75, 1, 0, 0, 0, 75, 89, 5, 2, 0, 0, 76, 77, 3, 2, 1, 0, 77, 78, 6, 4, -1, 0, 78, 88, 1, 0, 0, 0, 79, 80, 3, 8, 4, 0, 80, 81, 6, 4, -1, 0, 81, 88, 1, 0, 0, 0, 82, 83, 3, 12, 6, 0, 83, 84, 6, 4, -1, 0, 84, 88, 1, 0, 0, 0, 85, 86, 5, 17, 0, 0, 86, 88, 6, 4, -1, 0, 87, 76, 1, 0, 0, 0, 87, 79, 1, 0, 0, 0, 87, 82, 1, 0, 0, 0, 87, 85, 1, 0, 0, 0, 88, 91, 1, 0, 0, 0, 89, 87, 1, 0, 0, 0, 89, 90, 1, 0, 0, 0, 90, 92, 1, 0, 0, 0, 91, 89, 1, 0, 0, 0, 92, 93, 5, 3, 0, 0, 93, 9, 1, 0, 0, 0, 94, 95, 5, 15, 0, 0, 95, 103, 6, 5, -1, 0, 96, 97, 5, 15, 0, 0, 97, 102, 6, 5, -1, 0, 98, 99, 3, 16, 8, 0, 99, 100, 6, 5, -1, 0, 100, 102, 1, 0, 0, 0, 101, 96, 1, 0, 0, 0, 101, 98, 1, 0, 0, 0, 102, 105, 1, 0, 0, 0, 103, 101, 1, 0, 0, 0, 103, 104, 1, 0, 0, 0, 104, 11, 1, 0, 0, 0, 105, 103, 1, 0, 0, 0, 106, 107, 5, 4, 0, 0, 107, 108, 6, 6, -1, 0, 108, 109, 3, 14, 7, 0, 109, 111, 6, 6, -1, 0, 110, 112, 5, 17, 0, 0, 111, 110, 1, 0, 0, 0, 111, 112, 1, 0, 0, 0, 112, 113, 1, 0, 0, 0, 113, 119, 5, 2, 0, 0, 114, 115, 3, 2, 1, 0, 115, 116, 6, 6, -1, 0, 116, 118, 1, 0, 0, 0, 117, 114, 1, 0, 0, 0, 118, 121, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 122, 1, 0, 0, 0, 121, 119, 1, 0, 0, 0, 122, 123, 5, 3, 0, 0, 123, 13, 1, 0, 0, 0, 124, 125, 5, 5, 0, 0, 125, 126, 5, 15, 0, 0, 126, 129, 6, 7, -1, 0, 127, 128, 5, 15, 0, 0, 128, 130, 6, 7, -1, 0, 129, 127, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 136, 1, 0, 0, 0, 131, 132, 5, 15, 0, 0, 132, 137, 6, 7, -1, 0, 133, 134, 3, 16, 8, 0, 134, 135, 6, 7, -1, 0, 135, 137, 1, 0, 0, 0, 136, 131, 1, 0, 0, 0, 136, 133, 1, 0, 0, 0, 136, 137, 1, 0, 0, 0, 137, 138, 1, 0, 0, 0, 138, 139, 5, 6, 0, 0, 139, 15, 1, 0, 0, 0, 140, 141, 5, 7, 0, 0, 141, 152, 6, 8, -1, 0, 142, 143, 5, 8, 0, 0, 143, 152, 6, 8, -1, 0, 144, 145, 5, 15, 0, 0, 145, 152, 6, 8, -1, 0, 146, 147, 5, 5, 0, 0, 147, 148, 3, 16, 8, 0, 148, 149, 6, 8, -1, 0, 149, 150, 5, 6, 0, 0, 150, 152, 1, 0, 0, 0, 151, 140, 1, 0, 0, 0, 151, 142, 1, 0, 0, 0, 151, 144, 1, 0, 0, 0, 151, 146, 1, 0, 0, 0, 152, 153, 1, 0, 0, 0, 153, 151, 1, 0, 0, 0, 153, 154, 1, 0, 0, 0, 154, 17, 1, 0, 0, 0, 155, 156, 5, 9, 0, 0, 156, 159, 6, 9, -1, 0, 157, 158, 5, 15, 0, 0, 158, 160, 6, 9, -1, 0, 159, 157, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 166, 1, 0, 0, 0, 161, 162, 5, 15, 0, 0, 162, 167, 6, 9, -1, 0, 163, 164, 3, 16, 8, 0, 164, 165, 6, 9, -1, 0, 165, 167, 1, 0, 0, 0, 166, 161, 1, 0, 0, 0, 166, 163, 1, 0, 0, 0, 167, 19, 1, 0, 0, 0, 168, 169, 5, 10, 0, 0, 169, 175, 6, 10, -1, 0, 170, 171, 5, 15, 0, 0, 171, 176, 6, 10, -1, 0, 172, 173, 3, 16, 8, 0, 173, 174, 6, 10, -1, 0, 174, 176, 1, 0, 0, 0, 175, 170, 1, 0, 0, 0, 175, 172, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 5, 15, 0, 0, 178, 181, 6, 10, -1, 0, 179, 180, 7, 0, 0, 0, 180, 182, 6, 10, -1, 0, 181, 179, 1, 0, 0, 0, 181, 182, 1, 0, 0, 0, 182, 21, 1, 0, 0, 0, 21, 30, 32, 43, 54, 56, 70, 73, 87, 89, 101, 103, 111, 119, 129, 136, 151, 153, 159, 166, 175, 181]
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
// Generated from Nginx.g4 by ANTLR 4.5.3

package com.github.odiszapc.nginxparser.antlr;
import com.github.odiszapc.nginxparser.*;

package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1

import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
Expand All @@ -13,6 +9,7 @@
* which can be extended to create a listener which only needs to handle a subset
* of the available methods.
*/
@SuppressWarnings("CheckReturnValue")
public class NginxBaseListener implements NginxListener {
/**
* {@inheritDoc}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
// Generated from Nginx.g4 by ANTLR 4.5.3

package com.github.odiszapc.nginxparser.antlr;
import com.github.odiszapc.nginxparser.*;

package com.github.odiszapc.nginxparser.antlr;// Generated from /Volumes/Working/Works/Git Sources/nginx-java-parser/src/main/resources/grammar/Nginx.g4 by ANTLR 4.13.1
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;

/**
Expand All @@ -13,6 +9,7 @@
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
@SuppressWarnings("CheckReturnValue")
public class NginxBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements NginxVisitor<T> {
/**
* {@inheritDoc}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
token literal names:
null
';'
'{'
'}'
'if'
'('
')'
'\\.'
'^'
'location'
'rewrite'
'last'
'break'
'redirect'
'permanent'
null
null
null
null
null
null
null

token symbolic names:
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
Value
STR_EXT
Comment
REGEXP_PREFIXED
QUOTED_STRING
SINGLE_QUOTED
WS

rule names:
T__0
T__1
T__2
T__3
T__4
T__5
T__6
T__7
T__8
T__9
T__10
T__11
T__12
T__13
Value
STR_EXT
Comment
REGEXP_PREFIXED
QUOTED_STRING
RegexpPrefix
StringCharacters
NON_ASCII
EscapeSequence
SINGLE_QUOTED
WS

channel names:
DEFAULT_TOKEN_CHANNEL
HIDDEN

mode names:
DEFAULT_MODE

atn:
[4, 0, 21, 180, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 3, 14, 120, 8, 14, 1, 15, 1, 15, 4, 15, 124, 8, 15, 11, 15, 12, 15, 125, 1, 16, 1, 16, 5, 16, 130, 8, 16, 10, 16, 12, 16, 133, 9, 16, 1, 16, 1, 16, 1, 17, 1, 17, 4, 17, 139, 8, 17, 11, 17, 12, 17, 140, 1, 18, 1, 18, 3, 18, 145, 8, 18, 1, 18, 1, 18, 1, 19, 1, 19, 3, 19, 151, 8, 19, 1, 20, 1, 20, 4, 20, 155, 8, 20, 11, 20, 12, 20, 156, 1, 21, 1, 21, 1, 22, 1, 22, 3, 22, 163, 8, 22, 1, 23, 1, 23, 5, 23, 167, 8, 23, 10, 23, 12, 23, 170, 9, 23, 1, 23, 1, 23, 1, 24, 4, 24, 175, 8, 24, 11, 24, 12, 24, 176, 1, 24, 1, 24, 0, 0, 25, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 0, 41, 0, 43, 0, 45, 0, 47, 20, 49, 21, 1, 0, 9, 9, 0, 33, 33, 35, 36, 38, 38, 42, 58, 61, 61, 63, 95, 97, 122, 124, 124, 126, 126, 2, 0, 10, 10, 13, 13, 9, 0, 33, 33, 35, 36, 38, 38, 40, 58, 61, 61, 63, 95, 97, 122, 124, 124, 126, 126, 1, 0, 126, 126, 1, 0, 42, 42, 2, 0, 34, 34, 92, 92, 8, 0, 34, 34, 39, 39, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 2, 0, 39, 39, 92, 92, 3, 0, 9, 10, 13, 13, 32, 32, 188, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 1, 51, 1, 0, 0, 0, 3, 53, 1, 0, 0, 0, 5, 55, 1, 0, 0, 0, 7, 57, 1, 0, 0, 0, 9, 60, 1, 0, 0, 0, 11, 62, 1, 0, 0, 0, 13, 64, 1, 0, 0, 0, 15, 67, 1, 0, 0, 0, 17, 69, 1, 0, 0, 0, 19, 78, 1, 0, 0, 0, 21, 86, 1, 0, 0, 0, 23, 91, 1, 0, 0, 0, 25, 97, 1, 0, 0, 0, 27, 106, 1, 0, 0, 0, 29, 119, 1, 0, 0, 0, 31, 123, 1, 0, 0, 0, 33, 127, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 142, 1, 0, 0, 0, 39, 148, 1, 0, 0, 0, 41, 154, 1, 0, 0, 0, 43, 158, 1, 0, 0, 0, 45, 160, 1, 0, 0, 0, 47, 164, 1, 0, 0, 0, 49, 174, 1, 0, 0, 0, 51, 52, 5, 59, 0, 0, 52, 2, 1, 0, 0, 0, 53, 54, 5, 123, 0, 0, 54, 4, 1, 0, 0, 0, 55, 56, 5, 125, 0, 0, 56, 6, 1, 0, 0, 0, 57, 58, 5, 105, 0, 0, 58, 59, 5, 102, 0, 0, 59, 8, 1, 0, 0, 0, 60, 61, 5, 40, 0, 0, 61, 10, 1, 0, 0, 0, 62, 63, 5, 41, 0, 0, 63, 12, 1, 0, 0, 0, 64, 65, 5, 92, 0, 0, 65, 66, 5, 46, 0, 0, 66, 14, 1, 0, 0, 0, 67, 68, 5, 94, 0, 0, 68, 16, 1, 0, 0, 0, 69, 70, 5, 108, 0, 0, 70, 71, 5, 111, 0, 0, 71, 72, 5, 99, 0, 0, 72, 73, 5, 97, 0, 0, 73, 74, 5, 116, 0, 0, 74, 75, 5, 105, 0, 0, 75, 76, 5, 111, 0, 0, 76, 77, 5, 110, 0, 0, 77, 18, 1, 0, 0, 0, 78, 79, 5, 114, 0, 0, 79, 80, 5, 101, 0, 0, 80, 81, 5, 119, 0, 0, 81, 82, 5, 114, 0, 0, 82, 83, 5, 105, 0, 0, 83, 84, 5, 116, 0, 0, 84, 85, 5, 101, 0, 0, 85, 20, 1, 0, 0, 0, 86, 87, 5, 108, 0, 0, 87, 88, 5, 97, 0, 0, 88, 89, 5, 115, 0, 0, 89, 90, 5, 116, 0, 0, 90, 22, 1, 0, 0, 0, 91, 92, 5, 98, 0, 0, 92, 93, 5, 114, 0, 0, 93, 94, 5, 101, 0, 0, 94, 95, 5, 97, 0, 0, 95, 96, 5, 107, 0, 0, 96, 24, 1, 0, 0, 0, 97, 98, 5, 114, 0, 0, 98, 99, 5, 101, 0, 0, 99, 100, 5, 100, 0, 0, 100, 101, 5, 105, 0, 0, 101, 102, 5, 114, 0, 0, 102, 103, 5, 101, 0, 0, 103, 104, 5, 99, 0, 0, 104, 105, 5, 116, 0, 0, 105, 26, 1, 0, 0, 0, 106, 107, 5, 112, 0, 0, 107, 108, 5, 101, 0, 0, 108, 109, 5, 114, 0, 0, 109, 110, 5, 109, 0, 0, 110, 111, 5, 97, 0, 0, 111, 112, 5, 110, 0, 0, 112, 113, 5, 101, 0, 0, 113, 114, 5, 110, 0, 0, 114, 115, 5, 116, 0, 0, 115, 28, 1, 0, 0, 0, 116, 120, 3, 31, 15, 0, 117, 120, 3, 37, 18, 0, 118, 120, 3, 47, 23, 0, 119, 116, 1, 0, 0, 0, 119, 117, 1, 0, 0, 0, 119, 118, 1, 0, 0, 0, 120, 30, 1, 0, 0, 0, 121, 124, 7, 0, 0, 0, 122, 124, 3, 43, 21, 0, 123, 121, 1, 0, 0, 0, 123, 122, 1, 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 123, 1, 0, 0, 0, 125, 126, 1, 0, 0, 0, 126, 32, 1, 0, 0, 0, 127, 131, 5, 35, 0, 0, 128, 130, 8, 1, 0, 0, 129, 128, 1, 0, 0, 0, 130, 133, 1, 0, 0, 0, 131, 129, 1, 0, 0, 0, 131, 132, 1, 0, 0, 0, 132, 134, 1, 0, 0, 0, 133, 131, 1, 0, 0, 0, 134, 135, 7, 1, 0, 0, 135, 34, 1, 0, 0, 0, 136, 138, 3, 39, 19, 0, 137, 139, 7, 2, 0, 0, 138, 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 138, 1, 0, 0, 0, 140, 141, 1, 0, 0, 0, 141, 36, 1, 0, 0, 0, 142, 144, 5, 34, 0, 0, 143, 145, 3, 41, 20, 0, 144, 143, 1, 0, 0, 0, 144, 145, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 147, 5, 34, 0, 0, 147, 38, 1, 0, 0, 0, 148, 150, 7, 3, 0, 0, 149, 151, 7, 4, 0, 0, 150, 149, 1, 0, 0, 0, 150, 151, 1, 0, 0, 0, 151, 40, 1, 0, 0, 0, 152, 155, 8, 5, 0, 0, 153, 155, 3, 45, 22, 0, 154, 152, 1, 0, 0, 0, 154, 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157, 42, 1, 0, 0, 0, 158, 159, 2, 128, 65535, 0, 159, 44, 1, 0, 0, 0, 160, 162, 5, 92, 0, 0, 161, 163, 7, 6, 0, 0, 162, 161, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 46, 1, 0, 0, 0, 164, 168, 5, 39, 0, 0, 165, 167, 8, 7, 0, 0, 166, 165, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 169, 1, 0, 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 172, 5, 39, 0, 0, 172, 48, 1, 0, 0, 0, 173, 175, 7, 8, 0, 0, 174, 173, 1, 0, 0, 0, 175, 176, 1, 0, 0, 0, 176, 174, 1, 0, 0, 0, 176, 177, 1, 0, 0, 0, 177, 178, 1, 0, 0, 0, 178, 179, 6, 24, 0, 0, 179, 50, 1, 0, 0, 0, 13, 0, 119, 123, 125, 131, 140, 144, 150, 154, 156, 162, 168, 176, 1, 6, 0, 0]
Loading