Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
05c0aeb7
Commit
05c0aeb7
authored
Jan 18, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: implement table renderer
parent
aecffe34
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
653 additions
and
366 deletions
+653
-366
markdown_service.go
api/v2/markdown_service.go
+30
-0
markdown_service.proto
proto/api/v2/markdown_service.proto
+38
-26
README.md
proto/gen/api/v2/README.md
+49
-13
markdown_service.pb.go
proto/gen/api/v2/markdown_service.pb.go
+497
-327
Renderer.tsx
web/src/components/MemoContent/Renderer.tsx
+4
-0
Table.tsx
web/src/components/MemoContent/Table.tsx
+35
-0
No files found.
api/v2/markdown_service.go
View file @
05c0aeb7
...
@@ -63,6 +63,8 @@ func convertFromASTNode(rawNode ast.Node) *apiv2pb.Node {
...
@@ -63,6 +63,8 @@ func convertFromASTNode(rawNode ast.Node) *apiv2pb.Node {
node
.
Node
=
&
apiv2pb
.
Node_TaskListNode
{
TaskListNode
:
&
apiv2pb
.
TaskListNode
{
Symbol
:
n
.
Symbol
,
Indent
:
int32
(
n
.
Indent
),
Complete
:
n
.
Complete
,
Children
:
children
}}
node
.
Node
=
&
apiv2pb
.
Node_TaskListNode
{
TaskListNode
:
&
apiv2pb
.
TaskListNode
{
Symbol
:
n
.
Symbol
,
Indent
:
int32
(
n
.
Indent
),
Complete
:
n
.
Complete
,
Children
:
children
}}
case
*
ast
.
MathBlock
:
case
*
ast
.
MathBlock
:
node
.
Node
=
&
apiv2pb
.
Node_MathBlockNode
{
MathBlockNode
:
&
apiv2pb
.
MathBlockNode
{
Content
:
n
.
Content
}}
node
.
Node
=
&
apiv2pb
.
Node_MathBlockNode
{
MathBlockNode
:
&
apiv2pb
.
MathBlockNode
{
Content
:
n
.
Content
}}
case
*
ast
.
Table
:
node
.
Node
=
&
apiv2pb
.
Node_TableNode
{
TableNode
:
convertTableFromASTNode
(
n
)}
case
*
ast
.
Text
:
case
*
ast
.
Text
:
node
.
Node
=
&
apiv2pb
.
Node_TextNode
{
TextNode
:
&
apiv2pb
.
TextNode
{
Content
:
n
.
Content
}}
node
.
Node
=
&
apiv2pb
.
Node_TextNode
{
TextNode
:
&
apiv2pb
.
TextNode
{
Content
:
n
.
Content
}}
case
*
ast
.
Bold
:
case
*
ast
.
Bold
:
...
@@ -134,6 +136,8 @@ func convertToASTNode(node *apiv2pb.Node) ast.Node {
...
@@ -134,6 +136,8 @@ func convertToASTNode(node *apiv2pb.Node) ast.Node {
return
&
ast
.
TaskList
{
Symbol
:
n
.
TaskListNode
.
Symbol
,
Indent
:
int
(
n
.
TaskListNode
.
Indent
),
Complete
:
n
.
TaskListNode
.
Complete
,
Children
:
children
}
return
&
ast
.
TaskList
{
Symbol
:
n
.
TaskListNode
.
Symbol
,
Indent
:
int
(
n
.
TaskListNode
.
Indent
),
Complete
:
n
.
TaskListNode
.
Complete
,
Children
:
children
}
case
*
apiv2pb
.
Node_MathBlockNode
:
case
*
apiv2pb
.
Node_MathBlockNode
:
return
&
ast
.
MathBlock
{
Content
:
n
.
MathBlockNode
.
Content
}
return
&
ast
.
MathBlock
{
Content
:
n
.
MathBlockNode
.
Content
}
case
*
apiv2pb
.
Node_TableNode
:
return
convertTableToASTNode
(
node
)
case
*
apiv2pb
.
Node_TextNode
:
case
*
apiv2pb
.
Node_TextNode
:
return
&
ast
.
Text
{
Content
:
n
.
TextNode
.
Content
}
return
&
ast
.
Text
{
Content
:
n
.
TextNode
.
Content
}
case
*
apiv2pb
.
Node_BoldNode
:
case
*
apiv2pb
.
Node_BoldNode
:
...
@@ -166,6 +170,32 @@ func convertToASTNode(node *apiv2pb.Node) ast.Node {
...
@@ -166,6 +170,32 @@ func convertToASTNode(node *apiv2pb.Node) ast.Node {
}
}
}
}
func
convertTableToASTNode
(
node
*
apiv2pb
.
Node
)
*
ast
.
Table
{
table
:=
&
ast
.
Table
{
Header
:
node
.
GetTableNode
()
.
Header
,
}
for
_
,
d
:=
range
node
.
GetTableNode
()
.
Delimiter
{
table
.
Delimiter
=
append
(
table
.
Delimiter
,
int
(
d
))
}
for
_
,
row
:=
range
node
.
GetTableNode
()
.
Rows
{
table
.
Rows
=
append
(
table
.
Rows
,
row
.
Cells
)
}
return
table
}
func
convertTableFromASTNode
(
node
*
ast
.
Table
)
*
apiv2pb
.
TableNode
{
table
:=
&
apiv2pb
.
TableNode
{
Header
:
node
.
Header
,
}
for
_
,
d
:=
range
node
.
Delimiter
{
table
.
Delimiter
=
append
(
table
.
Delimiter
,
int32
(
d
))
}
for
_
,
row
:=
range
node
.
Rows
{
table
.
Rows
=
append
(
table
.
Rows
,
&
apiv2pb
.
TableNode_Row
{
Cells
:
row
})
}
return
table
}
func
traverseASTNodes
(
nodes
[]
ast
.
Node
,
fn
func
(
ast
.
Node
))
{
func
traverseASTNodes
(
nodes
[]
ast
.
Node
,
fn
func
(
ast
.
Node
))
{
for
_
,
node
:=
range
nodes
{
for
_
,
node
:=
range
nodes
{
fn
(
node
)
fn
(
node
)
...
...
proto/api/v2/markdown_service.proto
View file @
05c0aeb7
...
@@ -35,19 +35,20 @@ enum NodeType {
...
@@ -35,19 +35,20 @@ enum NodeType {
UNORDERED_LIST
=
8
;
UNORDERED_LIST
=
8
;
TASK_LIST
=
9
;
TASK_LIST
=
9
;
MATH_BLOCK
=
10
;
MATH_BLOCK
=
10
;
TEXT
=
11
;
TABLE
=
11
;
BOLD
=
12
;
TEXT
=
12
;
ITALIC
=
13
;
BOLD
=
13
;
BOLD_ITALIC
=
14
;
ITALIC
=
14
;
CODE
=
15
;
BOLD_ITALIC
=
15
;
IMAGE
=
16
;
CODE
=
16
;
LINK
=
17
;
IMAGE
=
17
;
AUTO_LINK
=
18
;
LINK
=
18
;
TAG
=
19
;
AUTO_LINK
=
19
;
STRIKETHROUGH
=
20
;
TAG
=
20
;
ESCAPING_CHARACTER
=
21
;
STRIKETHROUGH
=
21
;
MATH
=
22
;
ESCAPING_CHARACTER
=
22
;
HIGHLIGHT
=
23
;
MATH
=
23
;
HIGHLIGHT
=
24
;
}
}
message
Node
{
message
Node
{
...
@@ -63,19 +64,20 @@ message Node {
...
@@ -63,19 +64,20 @@ message Node {
UnorderedListNode
unordered_list_node
=
9
;
UnorderedListNode
unordered_list_node
=
9
;
TaskListNode
task_list_node
=
10
;
TaskListNode
task_list_node
=
10
;
MathBlockNode
math_block_node
=
11
;
MathBlockNode
math_block_node
=
11
;
TextNode
text_node
=
12
;
TableNode
table_node
=
12
;
BoldNode
bold_node
=
13
;
TextNode
text_node
=
13
;
ItalicNode
italic_node
=
14
;
BoldNode
bold_node
=
14
;
BoldItalicNode
bold_italic_node
=
15
;
ItalicNode
italic_node
=
15
;
CodeNode
code_node
=
16
;
BoldItalicNode
bold_italic_node
=
16
;
ImageNode
image_node
=
17
;
CodeNode
code_node
=
17
;
LinkNode
link_node
=
18
;
ImageNode
image_node
=
18
;
AutoLinkNode
auto_link_node
=
19
;
LinkNode
link_node
=
19
;
TagNode
tag_node
=
20
;
AutoLinkNode
auto_link_node
=
20
;
StrikethroughNode
strikethrough_node
=
21
;
TagNode
tag_node
=
21
;
EscapingCharacterNode
escaping_character_node
=
22
;
StrikethroughNode
strikethrough_node
=
22
;
MathNode
math_node
=
23
;
EscapingCharacterNode
escaping_character_node
=
23
;
HighlightNode
highlight_node
=
24
;
MathNode
math_node
=
24
;
HighlightNode
highlight_node
=
25
;
}
}
}
}
...
@@ -126,6 +128,16 @@ message MathBlockNode {
...
@@ -126,6 +128,16 @@ message MathBlockNode {
string
content
=
1
;
string
content
=
1
;
}
}
message
TableNode
{
repeated
string
header
=
1
;
repeated
int32
delimiter
=
2
;
message
Row
{
repeated
string
cells
=
1
;
}
repeated
Row
rows
=
3
;
}
message
TextNode
{
message
TextNode
{
string
content
=
1
;
string
content
=
1
;
}
}
...
...
proto/gen/api/v2/README.md
View file @
05c0aeb7
...
@@ -88,6 +88,8 @@
...
@@ -88,6 +88,8 @@
-
[
ParseMarkdownRequest
](
#memos-api-v2-ParseMarkdownRequest
)
-
[
ParseMarkdownRequest
](
#memos-api-v2-ParseMarkdownRequest
)
-
[
ParseMarkdownResponse
](
#memos-api-v2-ParseMarkdownResponse
)
-
[
ParseMarkdownResponse
](
#memos-api-v2-ParseMarkdownResponse
)
-
[
StrikethroughNode
](
#memos-api-v2-StrikethroughNode
)
-
[
StrikethroughNode
](
#memos-api-v2-StrikethroughNode
)
-
[
TableNode
](
#memos-api-v2-TableNode
)
-
[
TableNode.Row
](
#memos-api-v2-TableNode-Row
)
-
[
TagNode
](
#memos-api-v2-TagNode
)
-
[
TagNode
](
#memos-api-v2-TagNode
)
-
[
TaskListNode
](
#memos-api-v2-TaskListNode
)
-
[
TaskListNode
](
#memos-api-v2-TaskListNode
)
-
[
TextNode
](
#memos-api-v2-TextNode
)
-
[
TextNode
](
#memos-api-v2-TextNode
)
...
@@ -1222,6 +1224,7 @@
...
@@ -1222,6 +1224,7 @@
| unordered_list_node |
[
UnorderedListNode
](
#memos-api-v2-UnorderedListNode
)
| | |
| unordered_list_node |
[
UnorderedListNode
](
#memos-api-v2-UnorderedListNode
)
| | |
| task_list_node |
[
TaskListNode
](
#memos-api-v2-TaskListNode
)
| | |
| task_list_node |
[
TaskListNode
](
#memos-api-v2-TaskListNode
)
| | |
| math_block_node |
[
MathBlockNode
](
#memos-api-v2-MathBlockNode
)
| | |
| math_block_node |
[
MathBlockNode
](
#memos-api-v2-MathBlockNode
)
| | |
| table_node |
[
TableNode
](
#memos-api-v2-TableNode
)
| | |
| text_node |
[
TextNode
](
#memos-api-v2-TextNode
)
| | |
| text_node |
[
TextNode
](
#memos-api-v2-TextNode
)
| | |
| bold_node |
[
BoldNode
](
#memos-api-v2-BoldNode
)
| | |
| bold_node |
[
BoldNode
](
#memos-api-v2-BoldNode
)
| | |
| italic_node |
[
ItalicNode
](
#memos-api-v2-ItalicNode
)
| | |
| italic_node |
[
ItalicNode
](
#memos-api-v2-ItalicNode
)
| | |
...
@@ -1318,6 +1321,38 @@
...
@@ -1318,6 +1321,38 @@
<a
name=
"memos-api-v2-TableNode"
></a>
### TableNode
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| header |
[
string
](
#string
)
| repeated | |
| delimiter |
[
int32
](
#int32
)
| repeated | |
| rows |
[
TableNode.Row
](
#memos-api-v2-TableNode-Row
)
| repeated | |
<a
name=
"memos-api-v2-TableNode-Row"
></a>
### TableNode.Row
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| cells |
[
string
](
#string
)
| repeated | |
<a
name=
"memos-api-v2-TagNode"
></a>
<a
name=
"memos-api-v2-TagNode"
></a>
### TagNode
### TagNode
...
@@ -1403,19 +1438,20 @@
...
@@ -1403,19 +1438,20 @@
| UNORDERED_LIST | 8 | |
| UNORDERED_LIST | 8 | |
| TASK_LIST | 9 | |
| TASK_LIST | 9 | |
| MATH_BLOCK | 10 | |
| MATH_BLOCK | 10 | |
| TEXT | 11 | |
| TABLE | 11 | |
| BOLD | 12 | |
| TEXT | 12 | |
| ITALIC | 13 | |
| BOLD | 13 | |
| BOLD_ITALIC | 14 | |
| ITALIC | 14 | |
| CODE | 15 | |
| BOLD_ITALIC | 15 | |
| IMAGE | 16 | |
| CODE | 16 | |
| LINK | 17 | |
| IMAGE | 17 | |
| AUTO_LINK | 18 | |
| LINK | 18 | |
| TAG | 19 | |
| AUTO_LINK | 19 | |
| STRIKETHROUGH | 20 | |
| TAG | 20 | |
| ESCAPING_CHARACTER | 21 | |
| STRIKETHROUGH | 21 | |
| MATH | 22 | |
| ESCAPING_CHARACTER | 22 | |
| HIGHLIGHT | 23 | |
| MATH | 23 | |
| HIGHLIGHT | 24 | |
...
...
proto/gen/api/v2/markdown_service.pb.go
View file @
05c0aeb7
...
@@ -35,19 +35,20 @@ const (
...
@@ -35,19 +35,20 @@ const (
NodeType_UNORDERED_LIST
NodeType
=
8
NodeType_UNORDERED_LIST
NodeType
=
8
NodeType_TASK_LIST
NodeType
=
9
NodeType_TASK_LIST
NodeType
=
9
NodeType_MATH_BLOCK
NodeType
=
10
NodeType_MATH_BLOCK
NodeType
=
10
NodeType_TEXT
NodeType
=
11
NodeType_TABLE
NodeType
=
11
NodeType_BOLD
NodeType
=
12
NodeType_TEXT
NodeType
=
12
NodeType_ITALIC
NodeType
=
13
NodeType_BOLD
NodeType
=
13
NodeType_BOLD_ITALIC
NodeType
=
14
NodeType_ITALIC
NodeType
=
14
NodeType_CODE
NodeType
=
15
NodeType_BOLD_ITALIC
NodeType
=
15
NodeType_IMAGE
NodeType
=
16
NodeType_CODE
NodeType
=
16
NodeType_LINK
NodeType
=
17
NodeType_IMAGE
NodeType
=
17
NodeType_AUTO_LINK
NodeType
=
18
NodeType_LINK
NodeType
=
18
NodeType_TAG
NodeType
=
19
NodeType_AUTO_LINK
NodeType
=
19
NodeType_STRIKETHROUGH
NodeType
=
20
NodeType_TAG
NodeType
=
20
NodeType_ESCAPING_CHARACTER
NodeType
=
21
NodeType_STRIKETHROUGH
NodeType
=
21
NodeType_MATH
NodeType
=
22
NodeType_ESCAPING_CHARACTER
NodeType
=
22
NodeType_HIGHLIGHT
NodeType
=
23
NodeType_MATH
NodeType
=
23
NodeType_HIGHLIGHT
NodeType
=
24
)
)
// Enum value maps for NodeType.
// Enum value maps for NodeType.
...
@@ -64,19 +65,20 @@ var (
...
@@ -64,19 +65,20 @@ var (
8
:
"UNORDERED_LIST"
,
8
:
"UNORDERED_LIST"
,
9
:
"TASK_LIST"
,
9
:
"TASK_LIST"
,
10
:
"MATH_BLOCK"
,
10
:
"MATH_BLOCK"
,
11
:
"TEXT"
,
11
:
"TABLE"
,
12
:
"BOLD"
,
12
:
"TEXT"
,
13
:
"ITALIC"
,
13
:
"BOLD"
,
14
:
"BOLD_ITALIC"
,
14
:
"ITALIC"
,
15
:
"CODE"
,
15
:
"BOLD_ITALIC"
,
16
:
"IMAGE"
,
16
:
"CODE"
,
17
:
"LINK"
,
17
:
"IMAGE"
,
18
:
"AUTO_LINK"
,
18
:
"LINK"
,
19
:
"TAG"
,
19
:
"AUTO_LINK"
,
20
:
"STRIKETHROUGH"
,
20
:
"TAG"
,
21
:
"ESCAPING_CHARACTER"
,
21
:
"STRIKETHROUGH"
,
22
:
"MATH"
,
22
:
"ESCAPING_CHARACTER"
,
23
:
"HIGHLIGHT"
,
23
:
"MATH"
,
24
:
"HIGHLIGHT"
,
}
}
NodeType_value
=
map
[
string
]
int32
{
NodeType_value
=
map
[
string
]
int32
{
"NODE_UNSPECIFIED"
:
0
,
"NODE_UNSPECIFIED"
:
0
,
...
@@ -90,19 +92,20 @@ var (
...
@@ -90,19 +92,20 @@ var (
"UNORDERED_LIST"
:
8
,
"UNORDERED_LIST"
:
8
,
"TASK_LIST"
:
9
,
"TASK_LIST"
:
9
,
"MATH_BLOCK"
:
10
,
"MATH_BLOCK"
:
10
,
"TEXT"
:
11
,
"TABLE"
:
11
,
"BOLD"
:
12
,
"TEXT"
:
12
,
"ITALIC"
:
13
,
"BOLD"
:
13
,
"BOLD_ITALIC"
:
14
,
"ITALIC"
:
14
,
"CODE"
:
15
,
"BOLD_ITALIC"
:
15
,
"IMAGE"
:
16
,
"CODE"
:
16
,
"LINK"
:
17
,
"IMAGE"
:
17
,
"AUTO_LINK"
:
18
,
"LINK"
:
18
,
"TAG"
:
19
,
"AUTO_LINK"
:
19
,
"STRIKETHROUGH"
:
20
,
"TAG"
:
20
,
"ESCAPING_CHARACTER"
:
21
,
"STRIKETHROUGH"
:
21
,
"MATH"
:
22
,
"ESCAPING_CHARACTER"
:
22
,
"HIGHLIGHT"
:
23
,
"MATH"
:
23
,
"HIGHLIGHT"
:
24
,
}
}
)
)
...
@@ -245,6 +248,7 @@ type Node struct {
...
@@ -245,6 +248,7 @@ type Node struct {
// *Node_UnorderedListNode
// *Node_UnorderedListNode
// *Node_TaskListNode
// *Node_TaskListNode
// *Node_MathBlockNode
// *Node_MathBlockNode
// *Node_TableNode
// *Node_TextNode
// *Node_TextNode
// *Node_BoldNode
// *Node_BoldNode
// *Node_ItalicNode
// *Node_ItalicNode
...
@@ -377,6 +381,13 @@ func (x *Node) GetMathBlockNode() *MathBlockNode {
...
@@ -377,6 +381,13 @@ func (x *Node) GetMathBlockNode() *MathBlockNode {
return
nil
return
nil
}
}
func
(
x
*
Node
)
GetTableNode
()
*
TableNode
{
if
x
,
ok
:=
x
.
GetNode
()
.
(
*
Node_TableNode
);
ok
{
return
x
.
TableNode
}
return
nil
}
func
(
x
*
Node
)
GetTextNode
()
*
TextNode
{
func
(
x
*
Node
)
GetTextNode
()
*
TextNode
{
if
x
,
ok
:=
x
.
GetNode
()
.
(
*
Node_TextNode
);
ok
{
if
x
,
ok
:=
x
.
GetNode
()
.
(
*
Node_TextNode
);
ok
{
return
x
.
TextNode
return
x
.
TextNode
...
@@ -512,56 +523,60 @@ type Node_MathBlockNode struct {
...
@@ -512,56 +523,60 @@ type Node_MathBlockNode struct {
MathBlockNode
*
MathBlockNode
`protobuf:"bytes,11,opt,name=math_block_node,json=mathBlockNode,proto3,oneof"`
MathBlockNode
*
MathBlockNode
`protobuf:"bytes,11,opt,name=math_block_node,json=mathBlockNode,proto3,oneof"`
}
}
type
Node_TableNode
struct
{
TableNode
*
TableNode
`protobuf:"bytes,12,opt,name=table_node,json=tableNode,proto3,oneof"`
}
type
Node_TextNode
struct
{
type
Node_TextNode
struct
{
TextNode
*
TextNode
`protobuf:"bytes,1
2
,opt,name=text_node,json=textNode,proto3,oneof"`
TextNode
*
TextNode
`protobuf:"bytes,1
3
,opt,name=text_node,json=textNode,proto3,oneof"`
}
}
type
Node_BoldNode
struct
{
type
Node_BoldNode
struct
{
BoldNode
*
BoldNode
`protobuf:"bytes,1
3
,opt,name=bold_node,json=boldNode,proto3,oneof"`
BoldNode
*
BoldNode
`protobuf:"bytes,1
4
,opt,name=bold_node,json=boldNode,proto3,oneof"`
}
}
type
Node_ItalicNode
struct
{
type
Node_ItalicNode
struct
{
ItalicNode
*
ItalicNode
`protobuf:"bytes,1
4
,opt,name=italic_node,json=italicNode,proto3,oneof"`
ItalicNode
*
ItalicNode
`protobuf:"bytes,1
5
,opt,name=italic_node,json=italicNode,proto3,oneof"`
}
}
type
Node_BoldItalicNode
struct
{
type
Node_BoldItalicNode
struct
{
BoldItalicNode
*
BoldItalicNode
`protobuf:"bytes,1
5
,opt,name=bold_italic_node,json=boldItalicNode,proto3,oneof"`
BoldItalicNode
*
BoldItalicNode
`protobuf:"bytes,1
6
,opt,name=bold_italic_node,json=boldItalicNode,proto3,oneof"`
}
}
type
Node_CodeNode
struct
{
type
Node_CodeNode
struct
{
CodeNode
*
CodeNode
`protobuf:"bytes,1
6
,opt,name=code_node,json=codeNode,proto3,oneof"`
CodeNode
*
CodeNode
`protobuf:"bytes,1
7
,opt,name=code_node,json=codeNode,proto3,oneof"`
}
}
type
Node_ImageNode
struct
{
type
Node_ImageNode
struct
{
ImageNode
*
ImageNode
`protobuf:"bytes,1
7
,opt,name=image_node,json=imageNode,proto3,oneof"`
ImageNode
*
ImageNode
`protobuf:"bytes,1
8
,opt,name=image_node,json=imageNode,proto3,oneof"`
}
}
type
Node_LinkNode
struct
{
type
Node_LinkNode
struct
{
LinkNode
*
LinkNode
`protobuf:"bytes,1
8
,opt,name=link_node,json=linkNode,proto3,oneof"`
LinkNode
*
LinkNode
`protobuf:"bytes,1
9
,opt,name=link_node,json=linkNode,proto3,oneof"`
}
}
type
Node_AutoLinkNode
struct
{
type
Node_AutoLinkNode
struct
{
AutoLinkNode
*
AutoLinkNode
`protobuf:"bytes,
19
,opt,name=auto_link_node,json=autoLinkNode,proto3,oneof"`
AutoLinkNode
*
AutoLinkNode
`protobuf:"bytes,
20
,opt,name=auto_link_node,json=autoLinkNode,proto3,oneof"`
}
}
type
Node_TagNode
struct
{
type
Node_TagNode
struct
{
TagNode
*
TagNode
`protobuf:"bytes,2
0
,opt,name=tag_node,json=tagNode,proto3,oneof"`
TagNode
*
TagNode
`protobuf:"bytes,2
1
,opt,name=tag_node,json=tagNode,proto3,oneof"`
}
}
type
Node_StrikethroughNode
struct
{
type
Node_StrikethroughNode
struct
{
StrikethroughNode
*
StrikethroughNode
`protobuf:"bytes,2
1
,opt,name=strikethrough_node,json=strikethroughNode,proto3,oneof"`
StrikethroughNode
*
StrikethroughNode
`protobuf:"bytes,2
2
,opt,name=strikethrough_node,json=strikethroughNode,proto3,oneof"`
}
}
type
Node_EscapingCharacterNode
struct
{
type
Node_EscapingCharacterNode
struct
{
EscapingCharacterNode
*
EscapingCharacterNode
`protobuf:"bytes,2
2
,opt,name=escaping_character_node,json=escapingCharacterNode,proto3,oneof"`
EscapingCharacterNode
*
EscapingCharacterNode
`protobuf:"bytes,2
3
,opt,name=escaping_character_node,json=escapingCharacterNode,proto3,oneof"`
}
}
type
Node_MathNode
struct
{
type
Node_MathNode
struct
{
MathNode
*
MathNode
`protobuf:"bytes,2
3
,opt,name=math_node,json=mathNode,proto3,oneof"`
MathNode
*
MathNode
`protobuf:"bytes,2
4
,opt,name=math_node,json=mathNode,proto3,oneof"`
}
}
type
Node_HighlightNode
struct
{
type
Node_HighlightNode
struct
{
HighlightNode
*
HighlightNode
`protobuf:"bytes,2
4
,opt,name=highlight_node,json=highlightNode,proto3,oneof"`
HighlightNode
*
HighlightNode
`protobuf:"bytes,2
5
,opt,name=highlight_node,json=highlightNode,proto3,oneof"`
}
}
func
(
*
Node_LineBreakNode
)
isNode_Node
()
{}
func
(
*
Node_LineBreakNode
)
isNode_Node
()
{}
...
@@ -584,6 +599,8 @@ func (*Node_TaskListNode) isNode_Node() {}
...
@@ -584,6 +599,8 @@ func (*Node_TaskListNode) isNode_Node() {}
func
(
*
Node_MathBlockNode
)
isNode_Node
()
{}
func
(
*
Node_MathBlockNode
)
isNode_Node
()
{}
func
(
*
Node_TableNode
)
isNode_Node
()
{}
func
(
*
Node_TextNode
)
isNode_Node
()
{}
func
(
*
Node_TextNode
)
isNode_Node
()
{}
func
(
*
Node_BoldNode
)
isNode_Node
()
{}
func
(
*
Node_BoldNode
)
isNode_Node
()
{}
...
@@ -1143,6 +1160,69 @@ func (x *MathBlockNode) GetContent() string {
...
@@ -1143,6 +1160,69 @@ func (x *MathBlockNode) GetContent() string {
return
""
return
""
}
}
type
TableNode
struct
{
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
unknownFields
protoimpl
.
UnknownFields
Header
[]
string
`protobuf:"bytes,1,rep,name=header,proto3" json:"header,omitempty"`
Delimiter
[]
int32
`protobuf:"varint,2,rep,packed,name=delimiter,proto3" json:"delimiter,omitempty"`
Rows
[]
*
TableNode_Row
`protobuf:"bytes,3,rep,name=rows,proto3" json:"rows,omitempty"`
}
func
(
x
*
TableNode
)
Reset
()
{
*
x
=
TableNode
{}
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
13
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
}
func
(
x
*
TableNode
)
String
()
string
{
return
protoimpl
.
X
.
MessageStringOf
(
x
)
}
func
(
*
TableNode
)
ProtoMessage
()
{}
func
(
x
*
TableNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
13
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
ms
.
StoreMessageInfo
(
mi
)
}
return
ms
}
return
mi
.
MessageOf
(
x
)
}
// Deprecated: Use TableNode.ProtoReflect.Descriptor instead.
func
(
*
TableNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
13
}
}
func
(
x
*
TableNode
)
GetHeader
()
[]
string
{
if
x
!=
nil
{
return
x
.
Header
}
return
nil
}
func
(
x
*
TableNode
)
GetDelimiter
()
[]
int32
{
if
x
!=
nil
{
return
x
.
Delimiter
}
return
nil
}
func
(
x
*
TableNode
)
GetRows
()
[]
*
TableNode_Row
{
if
x
!=
nil
{
return
x
.
Rows
}
return
nil
}
type
TextNode
struct
{
type
TextNode
struct
{
state
protoimpl
.
MessageState
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
sizeCache
protoimpl
.
SizeCache
...
@@ -1154,7 +1234,7 @@ type TextNode struct {
...
@@ -1154,7 +1234,7 @@ type TextNode struct {
func
(
x
*
TextNode
)
Reset
()
{
func
(
x
*
TextNode
)
Reset
()
{
*
x
=
TextNode
{}
*
x
=
TextNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
3
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
4
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1167,7 +1247,7 @@ func (x *TextNode) String() string {
...
@@ -1167,7 +1247,7 @@ func (x *TextNode) String() string {
func
(
*
TextNode
)
ProtoMessage
()
{}
func
(
*
TextNode
)
ProtoMessage
()
{}
func
(
x
*
TextNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
TextNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
3
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
4
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1180,7 +1260,7 @@ func (x *TextNode) ProtoReflect() protoreflect.Message {
...
@@ -1180,7 +1260,7 @@ func (x *TextNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use TextNode.ProtoReflect.Descriptor instead.
// Deprecated: Use TextNode.ProtoReflect.Descriptor instead.
func
(
*
TextNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TextNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
3
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
4
}
}
}
func
(
x
*
TextNode
)
GetContent
()
string
{
func
(
x
*
TextNode
)
GetContent
()
string
{
...
@@ -1202,7 +1282,7 @@ type BoldNode struct {
...
@@ -1202,7 +1282,7 @@ type BoldNode struct {
func
(
x
*
BoldNode
)
Reset
()
{
func
(
x
*
BoldNode
)
Reset
()
{
*
x
=
BoldNode
{}
*
x
=
BoldNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
4
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
5
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1215,7 +1295,7 @@ func (x *BoldNode) String() string {
...
@@ -1215,7 +1295,7 @@ func (x *BoldNode) String() string {
func
(
*
BoldNode
)
ProtoMessage
()
{}
func
(
*
BoldNode
)
ProtoMessage
()
{}
func
(
x
*
BoldNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
BoldNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
4
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
5
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1228,7 +1308,7 @@ func (x *BoldNode) ProtoReflect() protoreflect.Message {
...
@@ -1228,7 +1308,7 @@ func (x *BoldNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use BoldNode.ProtoReflect.Descriptor instead.
// Deprecated: Use BoldNode.ProtoReflect.Descriptor instead.
func
(
*
BoldNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
BoldNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
4
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
5
}
}
}
func
(
x
*
BoldNode
)
GetSymbol
()
string
{
func
(
x
*
BoldNode
)
GetSymbol
()
string
{
...
@@ -1257,7 +1337,7 @@ type ItalicNode struct {
...
@@ -1257,7 +1337,7 @@ type ItalicNode struct {
func
(
x
*
ItalicNode
)
Reset
()
{
func
(
x
*
ItalicNode
)
Reset
()
{
*
x
=
ItalicNode
{}
*
x
=
ItalicNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
5
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
6
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1270,7 +1350,7 @@ func (x *ItalicNode) String() string {
...
@@ -1270,7 +1350,7 @@ func (x *ItalicNode) String() string {
func
(
*
ItalicNode
)
ProtoMessage
()
{}
func
(
*
ItalicNode
)
ProtoMessage
()
{}
func
(
x
*
ItalicNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
ItalicNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
5
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
6
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1283,7 +1363,7 @@ func (x *ItalicNode) ProtoReflect() protoreflect.Message {
...
@@ -1283,7 +1363,7 @@ func (x *ItalicNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use ItalicNode.ProtoReflect.Descriptor instead.
// Deprecated: Use ItalicNode.ProtoReflect.Descriptor instead.
func
(
*
ItalicNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ItalicNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
5
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
6
}
}
}
func
(
x
*
ItalicNode
)
GetSymbol
()
string
{
func
(
x
*
ItalicNode
)
GetSymbol
()
string
{
...
@@ -1312,7 +1392,7 @@ type BoldItalicNode struct {
...
@@ -1312,7 +1392,7 @@ type BoldItalicNode struct {
func
(
x
*
BoldItalicNode
)
Reset
()
{
func
(
x
*
BoldItalicNode
)
Reset
()
{
*
x
=
BoldItalicNode
{}
*
x
=
BoldItalicNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
6
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
7
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1325,7 +1405,7 @@ func (x *BoldItalicNode) String() string {
...
@@ -1325,7 +1405,7 @@ func (x *BoldItalicNode) String() string {
func
(
*
BoldItalicNode
)
ProtoMessage
()
{}
func
(
*
BoldItalicNode
)
ProtoMessage
()
{}
func
(
x
*
BoldItalicNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
BoldItalicNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
6
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
7
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1338,7 +1418,7 @@ func (x *BoldItalicNode) ProtoReflect() protoreflect.Message {
...
@@ -1338,7 +1418,7 @@ func (x *BoldItalicNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use BoldItalicNode.ProtoReflect.Descriptor instead.
// Deprecated: Use BoldItalicNode.ProtoReflect.Descriptor instead.
func
(
*
BoldItalicNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
BoldItalicNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
6
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
7
}
}
}
func
(
x
*
BoldItalicNode
)
GetSymbol
()
string
{
func
(
x
*
BoldItalicNode
)
GetSymbol
()
string
{
...
@@ -1366,7 +1446,7 @@ type CodeNode struct {
...
@@ -1366,7 +1446,7 @@ type CodeNode struct {
func
(
x
*
CodeNode
)
Reset
()
{
func
(
x
*
CodeNode
)
Reset
()
{
*
x
=
CodeNode
{}
*
x
=
CodeNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
7
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
8
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1379,7 +1459,7 @@ func (x *CodeNode) String() string {
...
@@ -1379,7 +1459,7 @@ func (x *CodeNode) String() string {
func
(
*
CodeNode
)
ProtoMessage
()
{}
func
(
*
CodeNode
)
ProtoMessage
()
{}
func
(
x
*
CodeNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
CodeNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
7
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
8
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1392,7 +1472,7 @@ func (x *CodeNode) ProtoReflect() protoreflect.Message {
...
@@ -1392,7 +1472,7 @@ func (x *CodeNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use CodeNode.ProtoReflect.Descriptor instead.
// Deprecated: Use CodeNode.ProtoReflect.Descriptor instead.
func
(
*
CodeNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
CodeNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
7
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
8
}
}
}
func
(
x
*
CodeNode
)
GetContent
()
string
{
func
(
x
*
CodeNode
)
GetContent
()
string
{
...
@@ -1414,7 +1494,7 @@ type ImageNode struct {
...
@@ -1414,7 +1494,7 @@ type ImageNode struct {
func
(
x
*
ImageNode
)
Reset
()
{
func
(
x
*
ImageNode
)
Reset
()
{
*
x
=
ImageNode
{}
*
x
=
ImageNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
8
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
9
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1427,7 +1507,7 @@ func (x *ImageNode) String() string {
...
@@ -1427,7 +1507,7 @@ func (x *ImageNode) String() string {
func
(
*
ImageNode
)
ProtoMessage
()
{}
func
(
*
ImageNode
)
ProtoMessage
()
{}
func
(
x
*
ImageNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
ImageNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
8
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
1
9
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1440,7 +1520,7 @@ func (x *ImageNode) ProtoReflect() protoreflect.Message {
...
@@ -1440,7 +1520,7 @@ func (x *ImageNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use ImageNode.ProtoReflect.Descriptor instead.
// Deprecated: Use ImageNode.ProtoReflect.Descriptor instead.
func
(
*
ImageNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
ImageNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
8
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
1
9
}
}
}
func
(
x
*
ImageNode
)
GetAltText
()
string
{
func
(
x
*
ImageNode
)
GetAltText
()
string
{
...
@@ -1469,7 +1549,7 @@ type LinkNode struct {
...
@@ -1469,7 +1549,7 @@ type LinkNode struct {
func
(
x
*
LinkNode
)
Reset
()
{
func
(
x
*
LinkNode
)
Reset
()
{
*
x
=
LinkNode
{}
*
x
=
LinkNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
19
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
20
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1482,7 +1562,7 @@ func (x *LinkNode) String() string {
...
@@ -1482,7 +1562,7 @@ func (x *LinkNode) String() string {
func
(
*
LinkNode
)
ProtoMessage
()
{}
func
(
*
LinkNode
)
ProtoMessage
()
{}
func
(
x
*
LinkNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
LinkNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
19
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
20
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1495,7 +1575,7 @@ func (x *LinkNode) ProtoReflect() protoreflect.Message {
...
@@ -1495,7 +1575,7 @@ func (x *LinkNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use LinkNode.ProtoReflect.Descriptor instead.
// Deprecated: Use LinkNode.ProtoReflect.Descriptor instead.
func
(
*
LinkNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
LinkNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
19
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
20
}
}
}
func
(
x
*
LinkNode
)
GetText
()
string
{
func
(
x
*
LinkNode
)
GetText
()
string
{
...
@@ -1524,7 +1604,7 @@ type AutoLinkNode struct {
...
@@ -1524,7 +1604,7 @@ type AutoLinkNode struct {
func
(
x
*
AutoLinkNode
)
Reset
()
{
func
(
x
*
AutoLinkNode
)
Reset
()
{
*
x
=
AutoLinkNode
{}
*
x
=
AutoLinkNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
0
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
1
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1537,7 +1617,7 @@ func (x *AutoLinkNode) String() string {
...
@@ -1537,7 +1617,7 @@ func (x *AutoLinkNode) String() string {
func
(
*
AutoLinkNode
)
ProtoMessage
()
{}
func
(
*
AutoLinkNode
)
ProtoMessage
()
{}
func
(
x
*
AutoLinkNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
AutoLinkNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
0
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
1
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1550,7 +1630,7 @@ func (x *AutoLinkNode) ProtoReflect() protoreflect.Message {
...
@@ -1550,7 +1630,7 @@ func (x *AutoLinkNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use AutoLinkNode.ProtoReflect.Descriptor instead.
// Deprecated: Use AutoLinkNode.ProtoReflect.Descriptor instead.
func
(
*
AutoLinkNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
AutoLinkNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
0
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
1
}
}
}
func
(
x
*
AutoLinkNode
)
GetUrl
()
string
{
func
(
x
*
AutoLinkNode
)
GetUrl
()
string
{
...
@@ -1578,7 +1658,7 @@ type TagNode struct {
...
@@ -1578,7 +1658,7 @@ type TagNode struct {
func
(
x
*
TagNode
)
Reset
()
{
func
(
x
*
TagNode
)
Reset
()
{
*
x
=
TagNode
{}
*
x
=
TagNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
1
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
2
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1591,7 +1671,7 @@ func (x *TagNode) String() string {
...
@@ -1591,7 +1671,7 @@ func (x *TagNode) String() string {
func
(
*
TagNode
)
ProtoMessage
()
{}
func
(
*
TagNode
)
ProtoMessage
()
{}
func
(
x
*
TagNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
TagNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
1
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
2
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1604,7 +1684,7 @@ func (x *TagNode) ProtoReflect() protoreflect.Message {
...
@@ -1604,7 +1684,7 @@ func (x *TagNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use TagNode.ProtoReflect.Descriptor instead.
// Deprecated: Use TagNode.ProtoReflect.Descriptor instead.
func
(
*
TagNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
TagNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
1
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
2
}
}
}
func
(
x
*
TagNode
)
GetContent
()
string
{
func
(
x
*
TagNode
)
GetContent
()
string
{
...
@@ -1625,7 +1705,7 @@ type StrikethroughNode struct {
...
@@ -1625,7 +1705,7 @@ type StrikethroughNode struct {
func
(
x
*
StrikethroughNode
)
Reset
()
{
func
(
x
*
StrikethroughNode
)
Reset
()
{
*
x
=
StrikethroughNode
{}
*
x
=
StrikethroughNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
2
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
3
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1638,7 +1718,7 @@ func (x *StrikethroughNode) String() string {
...
@@ -1638,7 +1718,7 @@ func (x *StrikethroughNode) String() string {
func
(
*
StrikethroughNode
)
ProtoMessage
()
{}
func
(
*
StrikethroughNode
)
ProtoMessage
()
{}
func
(
x
*
StrikethroughNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
StrikethroughNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
2
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
3
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1651,7 +1731,7 @@ func (x *StrikethroughNode) ProtoReflect() protoreflect.Message {
...
@@ -1651,7 +1731,7 @@ func (x *StrikethroughNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use StrikethroughNode.ProtoReflect.Descriptor instead.
// Deprecated: Use StrikethroughNode.ProtoReflect.Descriptor instead.
func
(
*
StrikethroughNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
StrikethroughNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
2
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
3
}
}
}
func
(
x
*
StrikethroughNode
)
GetContent
()
string
{
func
(
x
*
StrikethroughNode
)
GetContent
()
string
{
...
@@ -1672,7 +1752,7 @@ type EscapingCharacterNode struct {
...
@@ -1672,7 +1752,7 @@ type EscapingCharacterNode struct {
func
(
x
*
EscapingCharacterNode
)
Reset
()
{
func
(
x
*
EscapingCharacterNode
)
Reset
()
{
*
x
=
EscapingCharacterNode
{}
*
x
=
EscapingCharacterNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
3
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
4
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1685,7 +1765,7 @@ func (x *EscapingCharacterNode) String() string {
...
@@ -1685,7 +1765,7 @@ func (x *EscapingCharacterNode) String() string {
func
(
*
EscapingCharacterNode
)
ProtoMessage
()
{}
func
(
*
EscapingCharacterNode
)
ProtoMessage
()
{}
func
(
x
*
EscapingCharacterNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
EscapingCharacterNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
3
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
4
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1698,7 +1778,7 @@ func (x *EscapingCharacterNode) ProtoReflect() protoreflect.Message {
...
@@ -1698,7 +1778,7 @@ func (x *EscapingCharacterNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use EscapingCharacterNode.ProtoReflect.Descriptor instead.
// Deprecated: Use EscapingCharacterNode.ProtoReflect.Descriptor instead.
func
(
*
EscapingCharacterNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
EscapingCharacterNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
3
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
4
}
}
}
func
(
x
*
EscapingCharacterNode
)
GetSymbol
()
string
{
func
(
x
*
EscapingCharacterNode
)
GetSymbol
()
string
{
...
@@ -1719,7 +1799,7 @@ type MathNode struct {
...
@@ -1719,7 +1799,7 @@ type MathNode struct {
func
(
x
*
MathNode
)
Reset
()
{
func
(
x
*
MathNode
)
Reset
()
{
*
x
=
MathNode
{}
*
x
=
MathNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
4
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
5
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1732,7 +1812,7 @@ func (x *MathNode) String() string {
...
@@ -1732,7 +1812,7 @@ func (x *MathNode) String() string {
func
(
*
MathNode
)
ProtoMessage
()
{}
func
(
*
MathNode
)
ProtoMessage
()
{}
func
(
x
*
MathNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
MathNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
4
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
5
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1745,7 +1825,7 @@ func (x *MathNode) ProtoReflect() protoreflect.Message {
...
@@ -1745,7 +1825,7 @@ func (x *MathNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use MathNode.ProtoReflect.Descriptor instead.
// Deprecated: Use MathNode.ProtoReflect.Descriptor instead.
func
(
*
MathNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
MathNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
4
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
5
}
}
}
func
(
x
*
MathNode
)
GetContent
()
string
{
func
(
x
*
MathNode
)
GetContent
()
string
{
...
@@ -1766,7 +1846,7 @@ type HighlightNode struct {
...
@@ -1766,7 +1846,7 @@ type HighlightNode struct {
func
(
x
*
HighlightNode
)
Reset
()
{
func
(
x
*
HighlightNode
)
Reset
()
{
*
x
=
HighlightNode
{}
*
x
=
HighlightNode
{}
if
protoimpl
.
UnsafeEnabled
{
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
5
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
6
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
ms
.
StoreMessageInfo
(
mi
)
}
}
...
@@ -1779,7 +1859,7 @@ func (x *HighlightNode) String() string {
...
@@ -1779,7 +1859,7 @@ func (x *HighlightNode) String() string {
func
(
*
HighlightNode
)
ProtoMessage
()
{}
func
(
*
HighlightNode
)
ProtoMessage
()
{}
func
(
x
*
HighlightNode
)
ProtoReflect
()
protoreflect
.
Message
{
func
(
x
*
HighlightNode
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
5
]
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
2
6
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
if
ms
.
LoadMessageInfo
()
==
nil
{
...
@@ -1792,7 +1872,7 @@ func (x *HighlightNode) ProtoReflect() protoreflect.Message {
...
@@ -1792,7 +1872,7 @@ func (x *HighlightNode) ProtoReflect() protoreflect.Message {
// Deprecated: Use HighlightNode.ProtoReflect.Descriptor instead.
// Deprecated: Use HighlightNode.ProtoReflect.Descriptor instead.
func
(
*
HighlightNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
func
(
*
HighlightNode
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
5
}
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
2
6
}
}
}
func
(
x
*
HighlightNode
)
GetContent
()
string
{
func
(
x
*
HighlightNode
)
GetContent
()
string
{
...
@@ -1802,6 +1882,53 @@ func (x *HighlightNode) GetContent() string {
...
@@ -1802,6 +1882,53 @@ func (x *HighlightNode) GetContent() string {
return
""
return
""
}
}
type
TableNode_Row
struct
{
state
protoimpl
.
MessageState
sizeCache
protoimpl
.
SizeCache
unknownFields
protoimpl
.
UnknownFields
Cells
[]
string
`protobuf:"bytes,1,rep,name=cells,proto3" json:"cells,omitempty"`
}
func
(
x
*
TableNode_Row
)
Reset
()
{
*
x
=
TableNode_Row
{}
if
protoimpl
.
UnsafeEnabled
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
27
]
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
ms
.
StoreMessageInfo
(
mi
)
}
}
func
(
x
*
TableNode_Row
)
String
()
string
{
return
protoimpl
.
X
.
MessageStringOf
(
x
)
}
func
(
*
TableNode_Row
)
ProtoMessage
()
{}
func
(
x
*
TableNode_Row
)
ProtoReflect
()
protoreflect
.
Message
{
mi
:=
&
file_api_v2_markdown_service_proto_msgTypes
[
27
]
if
protoimpl
.
UnsafeEnabled
&&
x
!=
nil
{
ms
:=
protoimpl
.
X
.
MessageStateOf
(
protoimpl
.
Pointer
(
x
))
if
ms
.
LoadMessageInfo
()
==
nil
{
ms
.
StoreMessageInfo
(
mi
)
}
return
ms
}
return
mi
.
MessageOf
(
x
)
}
// Deprecated: Use TableNode_Row.ProtoReflect.Descriptor instead.
func
(
*
TableNode_Row
)
Descriptor
()
([]
byte
,
[]
int
)
{
return
file_api_v2_markdown_service_proto_rawDescGZIP
(),
[]
int
{
13
,
0
}
}
func
(
x
*
TableNode_Row
)
GetCells
()
[]
string
{
if
x
!=
nil
{
return
x
.
Cells
}
return
nil
}
var
File_api_v2_markdown_service_proto
protoreflect
.
FileDescriptor
var
File_api_v2_markdown_service_proto
protoreflect
.
FileDescriptor
var
file_api_v2_markdown_service_proto_rawDesc
=
[]
byte
{
var
file_api_v2_markdown_service_proto_rawDesc
=
[]
byte
{
...
@@ -1817,7 +1944,7 @@ var file_api_v2_markdown_service_proto_rawDesc = []byte{
...
@@ -1817,7 +1944,7 @@ var file_api_v2_markdown_service_proto_rawDesc = []byte{
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x28
,
0x0a
,
0x05
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x12
,
0x28
,
0x0a
,
0x05
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x05
,
0x6e
,
0x6f
,
0x64
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x05
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x73
,
0x22
,
0x
db
,
0x0c
,
0x0a
,
0x04
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x2a
,
0x0a
,
0x04
,
0x74
,
0x65
,
0x73
,
0x22
,
0x
95
,
0x0d
,
0x0a
,
0x04
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x2a
,
0x0a
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0e
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x79
,
0x70
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0e
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x54
,
0x79
,
0x70
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x54
,
0x79
,
0x70
,
0x65
,
0x52
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x12
,
0x45
,
0x0a
,
0x0f
,
0x6c
,
0x69
,
0x6e
,
0x65
,
0x5f
,
0x65
,
0x52
,
0x04
,
0x74
,
0x79
,
0x70
,
0x65
,
0x12
,
0x45
,
0x0a
,
0x0f
,
0x6c
,
0x69
,
0x6e
,
0x65
,
0x5f
,
...
@@ -1866,193 +1993,207 @@ var file_api_v2_markdown_service_proto_rawDesc = []byte{
...
@@ -1866,193 +1993,207 @@ var file_api_v2_markdown_service_proto_rawDesc = []byte{
0x65
,
0x18
,
0x0b
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x65
,
0x18
,
0x0b
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0d
,
0x6d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0d
,
0x6d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x74
,
0x65
,
0x78
,
0x74
,
0x5f
,
0x6e
,
0x6f
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x38
,
0x0a
,
0x0a
,
0x74
,
0x61
,
0x62
,
0x6c
,
0x65
,
0x5f
,
0x6e
,
0x64
,
0x65
,
0x18
,
0x0c
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0c
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x17
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x54
,
0x65
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x54
,
0x61
,
0x62
,
0x6c
,
0x65
,
0x4e
,
0x6f
,
0x48
,
0x00
,
0x52
,
0x08
,
0x74
,
0x65
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x09
,
0x74
,
0x61
,
0x62
,
0x6c
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0d
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x35
,
0x0a
,
0x09
,
0x74
,
0x65
,
0x78
,
0x74
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0d
,
0x20
,
0x01
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x42
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x32
,
0x2e
,
0x54
,
0x65
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x74
,
0x65
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x3b
,
0x0a
,
0x0b
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x5f
,
0x6e
,
0x6f
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x5f
,
0x6e
,
0x64
,
0x65
,
0x18
,
0x0e
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x18
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0e
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x6f
,
0x64
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0a
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x3b
,
0x0a
,
0x12
,
0x48
,
0x0a
,
0x10
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x5f
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x5f
,
0x0b
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0f
,
0x20
,
0x01
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x0f
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1c
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x28
,
0x0b
,
0x32
,
0x18
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x49
,
0x74
,
0x32
,
0x2e
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0a
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0e
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x48
,
0x0a
,
0x10
,
0x62
,
0x6f
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x63
,
0x6f
,
0x6c
,
0x64
,
0x5f
,
0x69
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x10
,
0x64
,
0x65
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x10
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1c
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x6f
,
0x64
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x63
,
0x6f
,
0x64
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0e
,
0x62
,
0x6f
,
0x6c
,
0x64
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x65
,
0x12
,
0x38
,
0x0a
,
0x0a
,
0x69
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x63
,
0x6f
,
0x64
,
0x65
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x11
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x17
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x65
,
0x18
,
0x11
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x49
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x52
,
0x09
,
0x69
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x6c
,
0x00
,
0x52
,
0x08
,
0x63
,
0x6f
,
0x64
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x38
,
0x0a
,
0x0a
,
0x69
,
0x69
,
0x6e
,
0x6b
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x12
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x12
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x17
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x49
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x09
,
0x69
,
0x6d
,
0x61
,
0x67
,
0x64
,
0x65
,
0x12
,
0x42
,
0x0a
,
0x0e
,
0x61
,
0x75
,
0x74
,
0x6f
,
0x5f
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x5f
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x5f
,
0x6e
,
0x6f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x13
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x64
,
0x65
,
0x18
,
0x13
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x41
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0c
,
0x61
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x48
,
0x00
,
0x52
,
0x08
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x42
,
0x0a
,
0x0e
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x74
,
0x61
,
0x67
,
0x5f
,
0x6e
,
0x6f
,
0x61
,
0x75
,
0x74
,
0x6f
,
0x5f
,
0x6c
,
0x69
,
0x6e
,
0x6b
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x14
,
0x64
,
0x65
,
0x18
,
0x14
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x15
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1a
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x54
,
0x61
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x41
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x00
,
0x52
,
0x07
,
0x74
,
0x61
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x50
,
0x0a
,
0x12
,
0x73
,
0x74
,
0x48
,
0x00
,
0x52
,
0x0c
,
0x61
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x32
,
0x0a
,
0x08
,
0x74
,
0x61
,
0x67
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x15
,
0x20
,
0x01
,
0x18
,
0x15
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x28
,
0x0b
,
0x32
,
0x15
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x53
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x32
,
0x2e
,
0x54
,
0x61
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x07
,
0x74
,
0x61
,
0x67
,
0x75
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x11
,
0x73
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x50
,
0x0a
,
0x12
,
0x73
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x5d
,
0x0a
,
0x17
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x16
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x65
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x5f
,
0x63
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x32
,
0x1f
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x65
,
0x72
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x16
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x23
,
0x2e
,
0x53
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x45
,
0x73
,
0x63
,
0x65
,
0x48
,
0x00
,
0x52
,
0x11
,
0x73
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x43
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x4e
,
0x6f
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x5d
,
0x0a
,
0x17
,
0x65
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x15
,
0x65
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x43
,
0x68
,
0x6e
,
0x67
,
0x5f
,
0x63
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x6d
,
0x65
,
0x18
,
0x17
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x74
,
0x68
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x17
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x45
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x43
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4d
,
0x61
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x15
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x08
,
0x6d
,
0x61
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x65
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x43
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x64
,
0x65
,
0x12
,
0x44
,
0x0a
,
0x0e
,
0x68
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x5f
,
0x72
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x35
,
0x0a
,
0x09
,
0x6d
,
0x61
,
0x74
,
0x68
,
0x5f
,
0x6e
,
0x6f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x18
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x64
,
0x65
,
0x18
,
0x18
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x16
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x48
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0d
,
0x68
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x48
,
0x00
,
0x52
,
0x08
,
0x6d
,
0x61
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x44
,
0x0a
,
0x0e
,
0x69
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x42
,
0x06
,
0x0a
,
0x04
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x68
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x5f
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x18
,
0x19
,
0x22
,
0x0f
,
0x0a
,
0x0d
,
0x4c
,
0x69
,
0x6e
,
0x65
,
0x42
,
0x72
,
0x65
,
0x61
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x20
,
0x01
,
0x28
,
0x0b
,
0x32
,
0x1b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x65
,
0x22
,
0x3f
,
0x0a
,
0x0d
,
0x50
,
0x61
,
0x72
,
0x61
,
0x67
,
0x72
,
0x61
,
0x70
,
0x68
,
0x4e
,
0x6f
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x48
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x64
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x65
,
0x48
,
0x00
,
0x52
,
0x0d
,
0x68
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x64
,
0x65
,
0x42
,
0x06
,
0x0a
,
0x04
,
0x6e
,
0x6f
,
0x64
,
0x65
,
0x22
,
0x0f
,
0x0a
,
0x0d
,
0x4c
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x6e
,
0x65
,
0x42
,
0x72
,
0x65
,
0x61
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x22
,
0x3f
,
0x0a
,
0x0d
,
0x50
,
0x65
,
0x6e
,
0x22
,
0x45
,
0x0a
,
0x0d
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x61
,
0x72
,
0x61
,
0x67
,
0x72
,
0x61
,
0x70
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x6c
,
0x61
,
0x6e
,
0x67
,
0x75
,
0x61
,
0x67
,
0x65
,
0x18
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x08
,
0x6c
,
0x61
,
0x6e
,
0x67
,
0x75
,
0x61
,
0x67
,
0x65
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x45
,
0x0a
,
0x0d
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x53
,
0x0a
,
0x0b
,
0x48
,
0x65
,
0x61
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x1a
,
0x0a
,
0x64
,
0x69
,
0x6e
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x6c
,
0x65
,
0x76
,
0x65
,
0x08
,
0x6c
,
0x61
,
0x6e
,
0x67
,
0x75
,
0x61
,
0x67
,
0x65
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x05
,
0x6c
,
0x65
,
0x76
,
0x65
,
0x6c
,
0x12
,
0x2e
,
0x08
,
0x6c
,
0x61
,
0x6e
,
0x67
,
0x75
,
0x61
,
0x67
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x53
,
0x0a
,
0x0b
,
0x48
,
0x65
,
0x61
,
0x64
,
0x69
,
0x6e
,
0x67
,
0x4e
,
0x6f
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x2c
,
0x64
,
0x65
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x6c
,
0x65
,
0x76
,
0x65
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x0a
,
0x12
,
0x48
,
0x6f
,
0x72
,
0x69
,
0x7a
,
0x6f
,
0x6e
,
0x74
,
0x61
,
0x6c
,
0x52
,
0x75
,
0x6c
,
0x65
,
0x05
,
0x52
,
0x05
,
0x6c
,
0x65
,
0x76
,
0x65
,
0x6c
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x40
,
0x0a
,
0x0e
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x71
,
0x75
,
0x6f
,
0x74
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x71
,
0x0a
,
0x0f
,
0x4f
,
0x72
,
0x64
,
0x65
,
0x72
,
0x65
,
0x64
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x6e
,
0x75
,
0x6d
,
0x62
,
0x65
,
0x72
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x6e
,
0x75
,
0x6d
,
0x62
,
0x65
,
0x72
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x73
,
0x0a
,
0x11
,
0x55
,
0x6e
,
0x6f
,
0x72
,
0x64
,
0x65
,
0x72
,
0x65
,
0x64
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x8a
,
0x01
,
0x0a
,
0x0c
,
0x54
,
0x61
,
0x73
,
0x6b
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x08
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x29
,
0x0a
,
0x0d
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x54
,
0x65
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x52
,
0x0a
,
0x08
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x3e
,
0x0a
,
0x0a
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x2c
,
0x0a
,
0x12
,
0x48
,
0x6f
,
0x72
,
0x69
,
0x7a
,
0x6f
,
0x6e
,
0x74
,
0x61
,
0x6c
,
0x52
,
0x75
,
0x6c
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x40
,
0x0a
,
0x0e
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x71
,
0x75
,
0x6f
,
0x74
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x71
,
0x0a
,
0x0f
,
0x4f
,
0x72
,
0x64
,
0x65
,
0x72
,
0x65
,
0x64
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x6e
,
0x75
,
0x6d
,
0x62
,
0x65
,
0x72
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x6e
,
0x75
,
0x6d
,
0x62
,
0x65
,
0x72
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x73
,
0x0a
,
0x11
,
0x55
,
0x6e
,
0x6f
,
0x72
,
0x64
,
0x65
,
0x72
,
0x65
,
0x64
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x8a
,
0x01
,
0x0a
,
0x0c
,
0x54
,
0x61
,
0x73
,
0x6b
,
0x4c
,
0x69
,
0x73
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x05
,
0x52
,
0x06
,
0x69
,
0x6e
,
0x64
,
0x65
,
0x6e
,
0x74
,
0x12
,
0x1a
,
0x0a
,
0x08
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x18
,
0x03
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x08
,
0x63
,
0x6f
,
0x6d
,
0x70
,
0x6c
,
0x65
,
0x74
,
0x65
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x04
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x29
,
0x0a
,
0x0d
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x42
,
0x6c
,
0x6f
,
0x63
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x8f
,
0x01
,
0x0a
,
0x09
,
0x54
,
0x61
,
0x62
,
0x6c
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x68
,
0x65
,
0x61
,
0x64
,
0x65
,
0x72
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x06
,
0x68
,
0x65
,
0x61
,
0x64
,
0x65
,
0x72
,
0x12
,
0x1c
,
0x0a
,
0x09
,
0x64
,
0x65
,
0x6c
,
0x69
,
0x6d
,
0x69
,
0x74
,
0x65
,
0x72
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x05
,
0x52
,
0x09
,
0x64
,
0x65
,
0x6c
,
0x69
,
0x6d
,
0x69
,
0x74
,
0x65
,
0x72
,
0x12
,
0x2f
,
0x0a
,
0x04
,
0x72
,
0x6f
,
0x77
,
0x73
,
0x18
,
0x03
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x1b
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x54
,
0x61
,
0x62
,
0x6c
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x2e
,
0x52
,
0x6f
,
0x77
,
0x52
,
0x04
,
0x72
,
0x6f
,
0x77
,
0x73
,
0x1a
,
0x1b
,
0x0a
,
0x03
,
0x52
,
0x6f
,
0x77
,
0x12
,
0x14
,
0x0a
,
0x05
,
0x63
,
0x65
,
0x6c
,
0x6c
,
0x73
,
0x18
,
0x01
,
0x20
,
0x03
,
0x28
,
0x09
,
0x52
,
0x05
,
0x63
,
0x65
,
0x6c
,
0x6c
,
0x73
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x54
,
0x65
,
0x78
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x52
,
0x0a
,
0x08
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x2e
,
0x0a
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x18
,
0x02
,
0x20
,
0x03
,
0x28
,
0x0b
,
0x32
,
0x12
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x52
,
0x08
,
0x63
,
0x68
,
0x69
,
0x6c
,
0x64
,
0x72
,
0x65
,
0x6e
,
0x22
,
0x3e
,
0x0a
,
0x0a
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x42
,
0x0a
,
0x0e
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x42
,
0x0a
,
0x0e
,
0x42
,
0x6f
,
0x6c
,
0x64
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x49
,
0x74
,
0x61
,
0x6c
,
0x69
,
0x63
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x38
,
0x6f
,
0x6c
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x02
,
0x20
,
0x0a
,
0x09
,
0x49
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x19
,
0x0a
,
0x08
,
0x61
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x6c
,
0x74
,
0x5f
,
0x74
,
0x65
,
0x78
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x61
,
0x43
,
0x6f
,
0x64
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x6c
,
0x74
,
0x54
,
0x65
,
0x78
,
0x74
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x22
,
0x30
,
0x0a
,
0x08
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x74
,
0x65
,
0x78
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x74
,
0x65
,
0x78
,
0x74
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x22
,
0x40
,
0x0a
,
0x0c
,
0x41
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x12
,
0x1e
,
0x0a
,
0x0b
,
0x69
,
0x73
,
0x5f
,
0x72
,
0x61
,
0x77
,
0x5f
,
0x74
,
0x65
,
0x78
,
0x74
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x09
,
0x69
,
0x73
,
0x52
,
0x61
,
0x77
,
0x54
,
0x65
,
0x78
,
0x74
,
0x22
,
0x23
,
0x0a
,
0x07
,
0x54
,
0x61
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x2d
,
0x0a
,
0x11
,
0x53
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x2f
,
0x0a
,
0x15
,
0x45
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x43
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x29
,
0x0a
,
0x0d
,
0x48
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x38
,
0x0a
,
0x09
,
0x49
,
0x6d
,
0x61
,
0x67
,
0x65
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x6e
,
0x74
,
0x2a
,
0xfd
,
0x02
,
0x0a
,
0x08
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x54
,
0x79
,
0x70
,
0x65
,
0x12
,
0x19
,
0x0a
,
0x08
,
0x61
,
0x6c
,
0x74
,
0x5f
,
0x74
,
0x65
,
0x78
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x14
,
0x0a
,
0x10
,
0x4e
,
0x4f
,
0x44
,
0x45
,
0x5f
,
0x55
,
0x4e
,
0x53
,
0x50
,
0x45
,
0x43
,
0x49
,
0x46
,
0x09
,
0x52
,
0x07
,
0x61
,
0x6c
,
0x74
,
0x54
,
0x65
,
0x78
,
0x74
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x75
,
0x72
,
0x49
,
0x45
,
0x44
,
0x10
,
0x00
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x4c
,
0x49
,
0x4e
,
0x45
,
0x5f
,
0x42
,
0x52
,
0x6c
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x22
,
0x30
,
0x0a
,
0x08
,
0x45
,
0x41
,
0x4b
,
0x10
,
0x01
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x50
,
0x41
,
0x52
,
0x41
,
0x47
,
0x52
,
0x41
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x12
,
0x0a
,
0x04
,
0x74
,
0x65
,
0x78
,
0x74
,
0x50
,
0x48
,
0x10
,
0x02
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x43
,
0x4f
,
0x44
,
0x45
,
0x5f
,
0x42
,
0x4c
,
0x4f
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x04
,
0x74
,
0x65
,
0x78
,
0x74
,
0x12
,
0x10
,
0x0a
,
0x03
,
0x43
,
0x4b
,
0x10
,
0x03
,
0x12
,
0x0b
,
0x0a
,
0x07
,
0x48
,
0x45
,
0x41
,
0x44
,
0x49
,
0x4e
,
0x47
,
0x10
,
0x75
,
0x72
,
0x6c
,
0x18
,
0x02
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x22
,
0x40
,
0x04
,
0x12
,
0x13
,
0x0a
,
0x0f
,
0x48
,
0x4f
,
0x52
,
0x49
,
0x5a
,
0x4f
,
0x4e
,
0x54
,
0x41
,
0x4c
,
0x5f
,
0x0a
,
0x0c
,
0x41
,
0x75
,
0x74
,
0x6f
,
0x4c
,
0x69
,
0x6e
,
0x6b
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x10
,
0x52
,
0x55
,
0x4c
,
0x45
,
0x10
,
0x05
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x42
,
0x4c
,
0x4f
,
0x43
,
0x4b
,
0x51
,
0x0a
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x03
,
0x75
,
0x72
,
0x6c
,
0x55
,
0x4f
,
0x54
,
0x45
,
0x10
,
0x06
,
0x12
,
0x10
,
0x0a
,
0x0c
,
0x4f
,
0x52
,
0x44
,
0x45
,
0x52
,
0x45
,
0x12
,
0x1e
,
0x0a
,
0x0b
,
0x69
,
0x73
,
0x5f
,
0x72
,
0x61
,
0x77
,
0x5f
,
0x74
,
0x65
,
0x78
,
0x74
,
0x18
,
0x44
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x07
,
0x12
,
0x12
,
0x0a
,
0x0e
,
0x55
,
0x4e
,
0x4f
,
0x52
,
0x02
,
0x20
,
0x01
,
0x28
,
0x08
,
0x52
,
0x09
,
0x69
,
0x73
,
0x52
,
0x61
,
0x77
,
0x54
,
0x65
,
0x78
,
0x74
,
0x44
,
0x45
,
0x52
,
0x45
,
0x44
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x08
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x22
,
0x23
,
0x0a
,
0x07
,
0x54
,
0x61
,
0x67
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x54
,
0x41
,
0x53
,
0x4b
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x09
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x4d
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x41
,
0x54
,
0x48
,
0x5f
,
0x42
,
0x4c
,
0x4f
,
0x43
,
0x4b
,
0x10
,
0x0a
,
0x12
,
0x09
,
0x0a
,
0x05
,
0x54
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x2d
,
0x0a
,
0x11
,
0x53
,
0x74
,
0x72
,
0x69
,
0x6b
,
0x65
,
0x74
,
0x41
,
0x42
,
0x4c
,
0x45
,
0x10
,
0x0b
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x54
,
0x45
,
0x58
,
0x54
,
0x10
,
0x0c
,
0x68
,
0x72
,
0x6f
,
0x75
,
0x67
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x42
,
0x4f
,
0x4c
,
0x44
,
0x10
,
0x0d
,
0x12
,
0x0a
,
0x0a
,
0x06
,
0x49
,
0x54
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x41
,
0x4c
,
0x49
,
0x43
,
0x10
,
0x0e
,
0x12
,
0x0f
,
0x0a
,
0x0b
,
0x42
,
0x4f
,
0x4c
,
0x44
,
0x5f
,
0x49
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x2f
,
0x0a
,
0x15
,
0x45
,
0x73
,
0x63
,
0x61
,
0x70
,
0x69
,
0x6e
,
0x67
,
0x54
,
0x41
,
0x4c
,
0x49
,
0x43
,
0x10
,
0x0f
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x43
,
0x4f
,
0x44
,
0x45
,
0x10
,
0x43
,
0x68
,
0x61
,
0x72
,
0x61
,
0x63
,
0x74
,
0x65
,
0x72
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x16
,
0x0a
,
0x10
,
0x12
,
0x09
,
0x0a
,
0x05
,
0x49
,
0x4d
,
0x41
,
0x47
,
0x45
,
0x10
,
0x11
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x06
,
0x73
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x06
,
0x73
,
0x4c
,
0x49
,
0x4e
,
0x4b
,
0x10
,
0x12
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x41
,
0x55
,
0x54
,
0x4f
,
0x5f
,
0x4c
,
0x79
,
0x6d
,
0x62
,
0x6f
,
0x6c
,
0x22
,
0x24
,
0x0a
,
0x08
,
0x4d
,
0x61
,
0x74
,
0x68
,
0x4e
,
0x6f
,
0x64
,
0x49
,
0x4e
,
0x4b
,
0x10
,
0x13
,
0x12
,
0x07
,
0x0a
,
0x03
,
0x54
,
0x41
,
0x47
,
0x10
,
0x14
,
0x12
,
0x11
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x0a
,
0x0d
,
0x53
,
0x54
,
0x52
,
0x49
,
0x4b
,
0x45
,
0x54
,
0x48
,
0x52
,
0x4f
,
0x55
,
0x47
,
0x48
,
0x10
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x22
,
0x29
,
0x0a
,
0x0d
,
0x48
,
0x15
,
0x12
,
0x16
,
0x0a
,
0x12
,
0x45
,
0x53
,
0x43
,
0x41
,
0x50
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x43
,
0x48
,
0x69
,
0x67
,
0x68
,
0x6c
,
0x69
,
0x67
,
0x68
,
0x74
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x12
,
0x18
,
0x0a
,
0x07
,
0x41
,
0x52
,
0x41
,
0x43
,
0x54
,
0x45
,
0x52
,
0x10
,
0x16
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x4d
,
0x41
,
0x54
,
0x63
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x18
,
0x01
,
0x20
,
0x01
,
0x28
,
0x09
,
0x52
,
0x07
,
0x63
,
0x48
,
0x10
,
0x17
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x48
,
0x49
,
0x47
,
0x48
,
0x4c
,
0x49
,
0x47
,
0x48
,
0x54
,
0x6f
,
0x6e
,
0x74
,
0x65
,
0x6e
,
0x74
,
0x2a
,
0xf2
,
0x02
,
0x0a
,
0x08
,
0x4e
,
0x6f
,
0x64
,
0x65
,
0x54
,
0x10
,
0x18
,
0x32
,
0x88
,
0x01
,
0x0a
,
0x0f
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x53
,
0x79
,
0x70
,
0x65
,
0x12
,
0x14
,
0x0a
,
0x10
,
0x4e
,
0x4f
,
0x44
,
0x45
,
0x5f
,
0x55
,
0x4e
,
0x53
,
0x50
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x12
,
0x75
,
0x0a
,
0x0d
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x4d
,
0x45
,
0x43
,
0x49
,
0x46
,
0x49
,
0x45
,
0x44
,
0x10
,
0x00
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x4c
,
0x49
,
0x4e
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x12
,
0x22
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x45
,
0x5f
,
0x42
,
0x52
,
0x45
,
0x41
,
0x4b
,
0x10
,
0x01
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x50
,
0x41
,
0x52
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x41
,
0x47
,
0x52
,
0x41
,
0x50
,
0x48
,
0x10
,
0x02
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x43
,
0x4f
,
0x44
,
0x45
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x5f
,
0x42
,
0x4c
,
0x4f
,
0x43
,
0x4b
,
0x10
,
0x03
,
0x12
,
0x0b
,
0x0a
,
0x07
,
0x48
,
0x45
,
0x41
,
0x44
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x49
,
0x4e
,
0x47
,
0x10
,
0x04
,
0x12
,
0x13
,
0x0a
,
0x0f
,
0x48
,
0x4f
,
0x52
,
0x49
,
0x5a
,
0x4f
,
0x4e
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x54
,
0x41
,
0x4c
,
0x5f
,
0x52
,
0x55
,
0x4c
,
0x45
,
0x10
,
0x05
,
0x12
,
0x0e
,
0x0a
,
0x0a
,
0x42
,
0x4c
,
0x22
,
0x1b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x15
,
0x3a
,
0x01
,
0x2a
,
0x22
,
0x10
,
0x2f
,
0x61
,
0x70
,
0x4f
,
0x43
,
0x4b
,
0x51
,
0x55
,
0x4f
,
0x54
,
0x45
,
0x10
,
0x06
,
0x12
,
0x10
,
0x0a
,
0x0c
,
0x4f
,
0x52
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x6d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x42
,
0xac
,
0x01
,
0x44
,
0x45
,
0x52
,
0x45
,
0x44
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x07
,
0x12
,
0x12
,
0x0a
,
0x0e
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x55
,
0x4e
,
0x4f
,
0x52
,
0x44
,
0x45
,
0x52
,
0x45
,
0x44
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x08
,
0x76
,
0x32
,
0x42
,
0x14
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x53
,
0x65
,
0x72
,
0x76
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x54
,
0x41
,
0x53
,
0x4b
,
0x5f
,
0x4c
,
0x49
,
0x53
,
0x54
,
0x10
,
0x09
,
0x12
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x0e
,
0x0a
,
0x0a
,
0x4d
,
0x41
,
0x54
,
0x48
,
0x5f
,
0x42
,
0x4c
,
0x4f
,
0x43
,
0x4b
,
0x10
,
0x0a
,
0x12
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x08
,
0x0a
,
0x04
,
0x54
,
0x45
,
0x58
,
0x54
,
0x10
,
0x0b
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x42
,
0x4f
,
0x4c
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x44
,
0x10
,
0x0c
,
0x12
,
0x0a
,
0x0a
,
0x06
,
0x49
,
0x54
,
0x41
,
0x4c
,
0x49
,
0x43
,
0x10
,
0x0d
,
0x12
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x3b
,
0x61
,
0x70
,
0x69
,
0x76
,
0x32
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x0f
,
0x0a
,
0x0b
,
0x42
,
0x4f
,
0x4c
,
0x44
,
0x5f
,
0x49
,
0x54
,
0x41
,
0x4c
,
0x49
,
0x43
,
0x10
,
0x0e
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x43
,
0x4f
,
0x44
,
0x45
,
0x10
,
0x0f
,
0x12
,
0x09
,
0x0a
,
0x05
,
0x49
,
0x4d
,
0x32
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0x41
,
0x47
,
0x45
,
0x10
,
0x10
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x4c
,
0x49
,
0x4e
,
0x4b
,
0x10
,
0x11
,
0x12
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0x5c
,
0x0d
,
0x0a
,
0x09
,
0x41
,
0x55
,
0x54
,
0x4f
,
0x5f
,
0x4c
,
0x49
,
0x4e
,
0x4b
,
0x10
,
0x12
,
0x12
,
0x07
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x0a
,
0x03
,
0x54
,
0x41
,
0x47
,
0x10
,
0x13
,
0x12
,
0x11
,
0x0a
,
0x0d
,
0x53
,
0x54
,
0x52
,
0x49
,
0x4b
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x3a
,
0x3a
,
0x56
,
0x32
,
0x62
,
0x06
,
0x70
,
0x72
,
0x45
,
0x54
,
0x48
,
0x52
,
0x4f
,
0x55
,
0x47
,
0x48
,
0x10
,
0x14
,
0x12
,
0x16
,
0x0a
,
0x12
,
0x45
,
0x53
,
0x6f
,
0x74
,
0x6f
,
0x33
,
0x43
,
0x41
,
0x50
,
0x49
,
0x4e
,
0x47
,
0x5f
,
0x43
,
0x48
,
0x41
,
0x52
,
0x41
,
0x43
,
0x54
,
0x45
,
0x52
,
0x10
,
0x15
,
0x12
,
0x08
,
0x0a
,
0x04
,
0x4d
,
0x41
,
0x54
,
0x48
,
0x10
,
0x16
,
0x12
,
0x0d
,
0x0a
,
0x09
,
0x48
,
0x49
,
0x47
,
0x48
,
0x4c
,
0x49
,
0x47
,
0x48
,
0x54
,
0x10
,
0x17
,
0x32
,
0x88
,
0x01
,
0x0a
,
0x0f
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x12
,
0x75
,
0x0a
,
0x0d
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x12
,
0x22
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x52
,
0x65
,
0x71
,
0x75
,
0x65
,
0x73
,
0x74
,
0x1a
,
0x23
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x2e
,
0x50
,
0x61
,
0x72
,
0x73
,
0x65
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x52
,
0x65
,
0x73
,
0x70
,
0x6f
,
0x6e
,
0x73
,
0x65
,
0x22
,
0x1b
,
0x82
,
0xd3
,
0xe4
,
0x93
,
0x02
,
0x15
,
0x3a
,
0x01
,
0x2a
,
0x22
,
0x10
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x2f
,
0x6d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x42
,
0xac
,
0x01
,
0x0a
,
0x10
,
0x63
,
0x6f
,
0x6d
,
0x2e
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x61
,
0x70
,
0x69
,
0x2e
,
0x76
,
0x32
,
0x42
,
0x14
,
0x4d
,
0x61
,
0x72
,
0x6b
,
0x64
,
0x6f
,
0x77
,
0x6e
,
0x53
,
0x65
,
0x72
,
0x76
,
0x69
,
0x63
,
0x65
,
0x50
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x50
,
0x01
,
0x5a
,
0x30
,
0x67
,
0x69
,
0x74
,
0x68
,
0x75
,
0x62
,
0x2e
,
0x63
,
0x6f
,
0x6d
,
0x2f
,
0x75
,
0x73
,
0x65
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x6d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2f
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x2f
,
0x67
,
0x65
,
0x6e
,
0x2f
,
0x61
,
0x70
,
0x69
,
0x2f
,
0x76
,
0x32
,
0x3b
,
0x61
,
0x70
,
0x69
,
0x76
,
0x32
,
0xa2
,
0x02
,
0x03
,
0x4d
,
0x41
,
0x58
,
0xaa
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x2e
,
0x41
,
0x70
,
0x69
,
0x2e
,
0x56
,
0x32
,
0xca
,
0x02
,
0x0c
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0xe2
,
0x02
,
0x18
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x5c
,
0x41
,
0x70
,
0x69
,
0x5c
,
0x56
,
0x32
,
0x5c
,
0x47
,
0x50
,
0x42
,
0x4d
,
0x65
,
0x74
,
0x61
,
0x64
,
0x61
,
0x74
,
0x61
,
0xea
,
0x02
,
0x0e
,
0x4d
,
0x65
,
0x6d
,
0x6f
,
0x73
,
0x3a
,
0x3a
,
0x41
,
0x70
,
0x69
,
0x3a
,
0x3a
,
0x56
,
0x32
,
0x62
,
0x06
,
0x70
,
0x72
,
0x6f
,
0x74
,
0x6f
,
0x33
,
}
}
var
(
var
(
...
@@ -2068,7 +2209,7 @@ func file_api_v2_markdown_service_proto_rawDescGZIP() []byte {
...
@@ -2068,7 +2209,7 @@ func file_api_v2_markdown_service_proto_rawDescGZIP() []byte {
}
}
var
file_api_v2_markdown_service_proto_enumTypes
=
make
([]
protoimpl
.
EnumInfo
,
1
)
var
file_api_v2_markdown_service_proto_enumTypes
=
make
([]
protoimpl
.
EnumInfo
,
1
)
var
file_api_v2_markdown_service_proto_msgTypes
=
make
([]
protoimpl
.
MessageInfo
,
2
6
)
var
file_api_v2_markdown_service_proto_msgTypes
=
make
([]
protoimpl
.
MessageInfo
,
2
8
)
var
file_api_v2_markdown_service_proto_goTypes
=
[]
interface
{}{
var
file_api_v2_markdown_service_proto_goTypes
=
[]
interface
{}{
(
NodeType
)(
0
),
// 0: memos.api.v2.NodeType
(
NodeType
)(
0
),
// 0: memos.api.v2.NodeType
(
*
ParseMarkdownRequest
)(
nil
),
// 1: memos.api.v2.ParseMarkdownRequest
(
*
ParseMarkdownRequest
)(
nil
),
// 1: memos.api.v2.ParseMarkdownRequest
...
@@ -2084,19 +2225,21 @@ var file_api_v2_markdown_service_proto_goTypes = []interface{}{
...
@@ -2084,19 +2225,21 @@ var file_api_v2_markdown_service_proto_goTypes = []interface{}{
(
*
UnorderedListNode
)(
nil
),
// 11: memos.api.v2.UnorderedListNode
(
*
UnorderedListNode
)(
nil
),
// 11: memos.api.v2.UnorderedListNode
(
*
TaskListNode
)(
nil
),
// 12: memos.api.v2.TaskListNode
(
*
TaskListNode
)(
nil
),
// 12: memos.api.v2.TaskListNode
(
*
MathBlockNode
)(
nil
),
// 13: memos.api.v2.MathBlockNode
(
*
MathBlockNode
)(
nil
),
// 13: memos.api.v2.MathBlockNode
(
*
TextNode
)(
nil
),
// 14: memos.api.v2.TextNode
(
*
TableNode
)(
nil
),
// 14: memos.api.v2.TableNode
(
*
BoldNode
)(
nil
),
// 15: memos.api.v2.BoldNode
(
*
TextNode
)(
nil
),
// 15: memos.api.v2.TextNode
(
*
ItalicNode
)(
nil
),
// 16: memos.api.v2.ItalicNode
(
*
BoldNode
)(
nil
),
// 16: memos.api.v2.BoldNode
(
*
BoldItalicNode
)(
nil
),
// 17: memos.api.v2.BoldItalicNode
(
*
ItalicNode
)(
nil
),
// 17: memos.api.v2.ItalicNode
(
*
CodeNode
)(
nil
),
// 18: memos.api.v2.CodeNode
(
*
BoldItalicNode
)(
nil
),
// 18: memos.api.v2.BoldItalicNode
(
*
ImageNode
)(
nil
),
// 19: memos.api.v2.ImageNode
(
*
CodeNode
)(
nil
),
// 19: memos.api.v2.CodeNode
(
*
LinkNode
)(
nil
),
// 20: memos.api.v2.LinkNode
(
*
ImageNode
)(
nil
),
// 20: memos.api.v2.ImageNode
(
*
AutoLinkNode
)(
nil
),
// 21: memos.api.v2.AutoLinkNode
(
*
LinkNode
)(
nil
),
// 21: memos.api.v2.LinkNode
(
*
TagNode
)(
nil
),
// 22: memos.api.v2.TagNode
(
*
AutoLinkNode
)(
nil
),
// 22: memos.api.v2.AutoLinkNode
(
*
StrikethroughNode
)(
nil
),
// 23: memos.api.v2.StrikethroughNode
(
*
TagNode
)(
nil
),
// 23: memos.api.v2.TagNode
(
*
EscapingCharacterNode
)(
nil
),
// 24: memos.api.v2.EscapingCharacterNode
(
*
StrikethroughNode
)(
nil
),
// 24: memos.api.v2.StrikethroughNode
(
*
MathNode
)(
nil
),
// 25: memos.api.v2.MathNode
(
*
EscapingCharacterNode
)(
nil
),
// 25: memos.api.v2.EscapingCharacterNode
(
*
HighlightNode
)(
nil
),
// 26: memos.api.v2.HighlightNode
(
*
MathNode
)(
nil
),
// 26: memos.api.v2.MathNode
(
*
HighlightNode
)(
nil
),
// 27: memos.api.v2.HighlightNode
(
*
TableNode_Row
)(
nil
),
// 28: memos.api.v2.TableNode.Row
}
}
var
file_api_v2_markdown_service_proto_depIdxs
=
[]
int32
{
var
file_api_v2_markdown_service_proto_depIdxs
=
[]
int32
{
3
,
// 0: memos.api.v2.ParseMarkdownResponse.nodes:type_name -> memos.api.v2.Node
3
,
// 0: memos.api.v2.ParseMarkdownResponse.nodes:type_name -> memos.api.v2.Node
...
@@ -2111,33 +2254,35 @@ var file_api_v2_markdown_service_proto_depIdxs = []int32{
...
@@ -2111,33 +2254,35 @@ var file_api_v2_markdown_service_proto_depIdxs = []int32{
11
,
// 9: memos.api.v2.Node.unordered_list_node:type_name -> memos.api.v2.UnorderedListNode
11
,
// 9: memos.api.v2.Node.unordered_list_node:type_name -> memos.api.v2.UnorderedListNode
12
,
// 10: memos.api.v2.Node.task_list_node:type_name -> memos.api.v2.TaskListNode
12
,
// 10: memos.api.v2.Node.task_list_node:type_name -> memos.api.v2.TaskListNode
13
,
// 11: memos.api.v2.Node.math_block_node:type_name -> memos.api.v2.MathBlockNode
13
,
// 11: memos.api.v2.Node.math_block_node:type_name -> memos.api.v2.MathBlockNode
14
,
// 12: memos.api.v2.Node.text_node:type_name -> memos.api.v2.TextNode
14
,
// 12: memos.api.v2.Node.table_node:type_name -> memos.api.v2.TableNode
15
,
// 13: memos.api.v2.Node.bold_node:type_name -> memos.api.v2.BoldNode
15
,
// 13: memos.api.v2.Node.text_node:type_name -> memos.api.v2.TextNode
16
,
// 14: memos.api.v2.Node.italic_node:type_name -> memos.api.v2.ItalicNode
16
,
// 14: memos.api.v2.Node.bold_node:type_name -> memos.api.v2.BoldNode
17
,
// 15: memos.api.v2.Node.bold_italic_node:type_name -> memos.api.v2.BoldItalicNode
17
,
// 15: memos.api.v2.Node.italic_node:type_name -> memos.api.v2.ItalicNode
18
,
// 16: memos.api.v2.Node.code_node:type_name -> memos.api.v2.CodeNode
18
,
// 16: memos.api.v2.Node.bold_italic_node:type_name -> memos.api.v2.BoldItalicNode
19
,
// 17: memos.api.v2.Node.image_node:type_name -> memos.api.v2.ImageNode
19
,
// 17: memos.api.v2.Node.code_node:type_name -> memos.api.v2.CodeNode
20
,
// 18: memos.api.v2.Node.link_node:type_name -> memos.api.v2.LinkNode
20
,
// 18: memos.api.v2.Node.image_node:type_name -> memos.api.v2.ImageNode
21
,
// 19: memos.api.v2.Node.auto_link_node:type_name -> memos.api.v2.AutoLinkNode
21
,
// 19: memos.api.v2.Node.link_node:type_name -> memos.api.v2.LinkNode
22
,
// 20: memos.api.v2.Node.tag_node:type_name -> memos.api.v2.TagNode
22
,
// 20: memos.api.v2.Node.auto_link_node:type_name -> memos.api.v2.AutoLinkNode
23
,
// 21: memos.api.v2.Node.strikethrough_node:type_name -> memos.api.v2.StrikethroughNode
23
,
// 21: memos.api.v2.Node.tag_node:type_name -> memos.api.v2.TagNode
24
,
// 22: memos.api.v2.Node.escaping_character_node:type_name -> memos.api.v2.EscapingCharacterNode
24
,
// 22: memos.api.v2.Node.strikethrough_node:type_name -> memos.api.v2.StrikethroughNode
25
,
// 23: memos.api.v2.Node.math_node:type_name -> memos.api.v2.MathNode
25
,
// 23: memos.api.v2.Node.escaping_character_node:type_name -> memos.api.v2.EscapingCharacterNode
26
,
// 24: memos.api.v2.Node.highlight_node:type_name -> memos.api.v2.HighlightNode
26
,
// 24: memos.api.v2.Node.math_node:type_name -> memos.api.v2.MathNode
3
,
// 25: memos.api.v2.ParagraphNode.children:type_name -> memos.api.v2.Node
27
,
// 25: memos.api.v2.Node.highlight_node:type_name -> memos.api.v2.HighlightNode
3
,
// 26: memos.api.v2.HeadingNode.children:type_name -> memos.api.v2.Node
3
,
// 26: memos.api.v2.ParagraphNode.children:type_name -> memos.api.v2.Node
3
,
// 27: memos.api.v2.BlockquoteNode.children:type_name -> memos.api.v2.Node
3
,
// 27: memos.api.v2.HeadingNode.children:type_name -> memos.api.v2.Node
3
,
// 28: memos.api.v2.OrderedListNode.children:type_name -> memos.api.v2.Node
3
,
// 28: memos.api.v2.BlockquoteNode.children:type_name -> memos.api.v2.Node
3
,
// 29: memos.api.v2.UnorderedListNode.children:type_name -> memos.api.v2.Node
3
,
// 29: memos.api.v2.OrderedListNode.children:type_name -> memos.api.v2.Node
3
,
// 30: memos.api.v2.TaskListNode.children:type_name -> memos.api.v2.Node
3
,
// 30: memos.api.v2.UnorderedListNode.children:type_name -> memos.api.v2.Node
3
,
// 31: memos.api.v2.BoldNode.children:type_name -> memos.api.v2.Node
3
,
// 31: memos.api.v2.TaskListNode.children:type_name -> memos.api.v2.Node
1
,
// 32: memos.api.v2.MarkdownService.ParseMarkdown:input_type -> memos.api.v2.ParseMarkdownRequest
28
,
// 32: memos.api.v2.TableNode.rows:type_name -> memos.api.v2.TableNode.Row
2
,
// 33: memos.api.v2.MarkdownService.ParseMarkdown:output_type -> memos.api.v2.ParseMarkdownResponse
3
,
// 33: memos.api.v2.BoldNode.children:type_name -> memos.api.v2.Node
33
,
// [33:34] is the sub-list for method output_type
1
,
// 34: memos.api.v2.MarkdownService.ParseMarkdown:input_type -> memos.api.v2.ParseMarkdownRequest
32
,
// [32:33] is the sub-list for method input_type
2
,
// 35: memos.api.v2.MarkdownService.ParseMarkdown:output_type -> memos.api.v2.ParseMarkdownResponse
32
,
// [32:32] is the sub-list for extension type_name
35
,
// [35:36] is the sub-list for method output_type
32
,
// [32:32] is the sub-list for extension extendee
34
,
// [34:35] is the sub-list for method input_type
0
,
// [0:32] is the sub-list for field type_name
34
,
// [34:34] is the sub-list for extension type_name
34
,
// [34:34] is the sub-list for extension extendee
0
,
// [0:34] is the sub-list for field type_name
}
}
func
init
()
{
file_api_v2_markdown_service_proto_init
()
}
func
init
()
{
file_api_v2_markdown_service_proto_init
()
}
...
@@ -2303,7 +2448,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2303,7 +2448,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
13
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
13
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
T
ext
Node
);
i
{
switch
v
:=
v
.
(
*
T
able
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2315,7 +2460,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2315,7 +2460,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
14
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
14
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Bold
Node
);
i
{
switch
v
:=
v
.
(
*
Text
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2327,7 +2472,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2327,7 +2472,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
15
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
15
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Italic
Node
);
i
{
switch
v
:=
v
.
(
*
Bold
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2339,7 +2484,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2339,7 +2484,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
16
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
16
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Bold
ItalicNode
);
i
{
switch
v
:=
v
.
(
*
ItalicNode
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2351,7 +2496,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2351,7 +2496,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
17
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
17
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Code
Node
);
i
{
switch
v
:=
v
.
(
*
BoldItalic
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2363,7 +2508,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2363,7 +2508,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
18
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
18
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Imag
eNode
);
i
{
switch
v
:=
v
.
(
*
Cod
eNode
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2375,7 +2520,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2375,7 +2520,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
19
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
19
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Link
Node
);
i
{
switch
v
:=
v
.
(
*
Image
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2387,7 +2532,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2387,7 +2532,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
20
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
20
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Auto
LinkNode
);
i
{
switch
v
:=
v
.
(
*
LinkNode
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2399,7 +2544,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2399,7 +2544,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
21
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
21
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Tag
Node
);
i
{
switch
v
:=
v
.
(
*
AutoLink
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2411,7 +2556,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2411,7 +2556,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
22
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
22
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Strikethrough
Node
);
i
{
switch
v
:=
v
.
(
*
Tag
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2423,7 +2568,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2423,7 +2568,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
23
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
23
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
EscapingCharacter
Node
);
i
{
switch
v
:=
v
.
(
*
Strikethrough
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2435,7 +2580,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2435,7 +2580,7 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
24
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
24
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
Math
Node
);
i
{
switch
v
:=
v
.
(
*
EscapingCharacter
Node
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
case
1
:
case
1
:
...
@@ -2447,6 +2592,18 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2447,6 +2592,18 @@ func file_api_v2_markdown_service_proto_init() {
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
25
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
file_api_v2_markdown_service_proto_msgTypes
[
25
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
MathNode
);
i
{
case
0
:
return
&
v
.
state
case
1
:
return
&
v
.
sizeCache
case
2
:
return
&
v
.
unknownFields
default
:
return
nil
}
}
file_api_v2_markdown_service_proto_msgTypes
[
26
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
HighlightNode
);
i
{
switch
v
:=
v
.
(
*
HighlightNode
);
i
{
case
0
:
case
0
:
return
&
v
.
state
return
&
v
.
state
...
@@ -2458,6 +2615,18 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2458,6 +2615,18 @@ func file_api_v2_markdown_service_proto_init() {
return
nil
return
nil
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
27
]
.
Exporter
=
func
(
v
interface
{},
i
int
)
interface
{}
{
switch
v
:=
v
.
(
*
TableNode_Row
);
i
{
case
0
:
return
&
v
.
state
case
1
:
return
&
v
.
sizeCache
case
2
:
return
&
v
.
unknownFields
default
:
return
nil
}
}
}
}
file_api_v2_markdown_service_proto_msgTypes
[
2
]
.
OneofWrappers
=
[]
interface
{}{
file_api_v2_markdown_service_proto_msgTypes
[
2
]
.
OneofWrappers
=
[]
interface
{}{
(
*
Node_LineBreakNode
)(
nil
),
(
*
Node_LineBreakNode
)(
nil
),
...
@@ -2470,6 +2639,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2470,6 +2639,7 @@ func file_api_v2_markdown_service_proto_init() {
(
*
Node_UnorderedListNode
)(
nil
),
(
*
Node_UnorderedListNode
)(
nil
),
(
*
Node_TaskListNode
)(
nil
),
(
*
Node_TaskListNode
)(
nil
),
(
*
Node_MathBlockNode
)(
nil
),
(
*
Node_MathBlockNode
)(
nil
),
(
*
Node_TableNode
)(
nil
),
(
*
Node_TextNode
)(
nil
),
(
*
Node_TextNode
)(
nil
),
(
*
Node_BoldNode
)(
nil
),
(
*
Node_BoldNode
)(
nil
),
(
*
Node_ItalicNode
)(
nil
),
(
*
Node_ItalicNode
)(
nil
),
...
@@ -2490,7 +2660,7 @@ func file_api_v2_markdown_service_proto_init() {
...
@@ -2490,7 +2660,7 @@ func file_api_v2_markdown_service_proto_init() {
GoPackagePath
:
reflect
.
TypeOf
(
x
{})
.
PkgPath
(),
GoPackagePath
:
reflect
.
TypeOf
(
x
{})
.
PkgPath
(),
RawDescriptor
:
file_api_v2_markdown_service_proto_rawDesc
,
RawDescriptor
:
file_api_v2_markdown_service_proto_rawDesc
,
NumEnums
:
1
,
NumEnums
:
1
,
NumMessages
:
2
6
,
NumMessages
:
2
8
,
NumExtensions
:
0
,
NumExtensions
:
0
,
NumServices
:
1
,
NumServices
:
1
,
},
},
...
...
web/src/components/MemoContent/Renderer.tsx
View file @
05c0aeb7
...
@@ -18,6 +18,7 @@ import {
...
@@ -18,6 +18,7 @@ import {
OrderedListNode
,
OrderedListNode
,
ParagraphNode
,
ParagraphNode
,
StrikethroughNode
,
StrikethroughNode
,
TableNode
,
TagNode
,
TagNode
,
TaskListNode
,
TaskListNode
,
TextNode
,
TextNode
,
...
@@ -40,6 +41,7 @@ import Math from "./Math";
...
@@ -40,6 +41,7 @@ import Math from "./Math";
import
OrderedList
from
"./OrderedList"
;
import
OrderedList
from
"./OrderedList"
;
import
Paragraph
from
"./Paragraph"
;
import
Paragraph
from
"./Paragraph"
;
import
Strikethrough
from
"./Strikethrough"
;
import
Strikethrough
from
"./Strikethrough"
;
import
Table
from
"./Table"
;
import
Tag
from
"./Tag"
;
import
Tag
from
"./Tag"
;
import
TaskList
from
"./TaskList"
;
import
TaskList
from
"./TaskList"
;
import
Text
from
"./Text"
;
import
Text
from
"./Text"
;
...
@@ -72,6 +74,8 @@ const Renderer: React.FC<Props> = ({ index, node }: Props) => {
...
@@ -72,6 +74,8 @@ const Renderer: React.FC<Props> = ({ index, node }: Props) => {
return
<
TaskList
index=
{
index
}
{
...
(
node
.
taskListNode
as
TaskListNode
)}
/>;
return
<
TaskList
index=
{
index
}
{
...
(
node
.
taskListNode
as
TaskListNode
)}
/>;
case
NodeType
.
MATH_BLOCK
:
case
NodeType
.
MATH_BLOCK
:
return
<
Math
{
...
(
node
.
mathBlockNode
as
MathNode
)}
block=
{
true
}
/>;
return
<
Math
{
...
(
node
.
mathBlockNode
as
MathNode
)}
block=
{
true
}
/>;
case
NodeType
.
TABLE
:
return
<
Table
{
...
(
node
.
tableNode
as
TableNode
)}
/>;
case
NodeType
.
TEXT
:
case
NodeType
.
TEXT
:
return
<
Text
{
...
(
node
.
textNode
as
TextNode
)}
/>;
return
<
Text
{
...
(
node
.
textNode
as
TextNode
)}
/>;
case
NodeType
.
BOLD
:
case
NodeType
.
BOLD
:
...
...
web/src/components/MemoContent/Table.tsx
0 → 100644
View file @
05c0aeb7
import
{
TableNode_Row
}
from
"@/types/proto/api/v2/markdown_service"
;
interface
Props
{
header
:
string
[];
rows
:
TableNode_Row
[];
}
const
Table
=
({
header
,
rows
}:
Props
)
=>
{
return
(
<
table
className=
"w-auto max-w-full border border-gray-300 dark:border-zinc-600 divide-y divide-gray-300 dark:divide-zinc-600"
>
<
thead
className=
"text-sm font-semibold leading-5 text-left text-gray-900 dark:text-gray-400"
>
<
tr
className=
"divide-x divide-gray-300 dark:divide-zinc-600"
>
{
header
.
map
((
h
,
i
)
=>
(
<
th
key=
{
i
}
className=
"py-1 px-2"
>
{
h
}
</
th
>
))
}
</
tr
>
</
thead
>
<
tbody
className=
"divide-y divide-gray-300 dark:divide-zinc-600 text-sm leading-5 text-left text-gray-900 dark:text-gray-400"
>
{
rows
.
map
((
row
,
i
)
=>
(
<
tr
key=
{
i
}
className=
"divide-x divide-gray-300 dark:divide-zinc-600"
>
{
row
.
cells
.
map
((
r
,
j
)
=>
(
<
td
key=
{
j
}
className=
"py-1 px-2"
>
{
r
}
</
td
>
))
}
</
tr
>
))
}
</
tbody
>
</
table
>
);
};
export
default
Table
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment