Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JSON syntax highlight fails on long array #51127

Closed
idailylife opened this issue Jun 5, 2018 · 10 comments · Fixed by #51265
Closed

JSON syntax highlight fails on long array #51127

idailylife opened this issue Jun 5, 2018 · 10 comments · Fixed by #51265
Assignees
Labels
feature-request Request for new features or functionality verified Verification succeeded
Milestone

Comments

@idailylife
Copy link

idailylife commented Jun 5, 2018

Issue Type: Bug

JSON syntax highlighting fails on the following array (item 1, "response"):
{
"request": [24],
"response": [152, 26, 0, 0, 227, 147, 4, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 233, 245, 229, 2, 43, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 3, 0, 1, 0, 100, 0, 12, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 70, 32, 32, 32, 32, 82, 67, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 221, 41, 12, 1, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 49, 32, 32, 32, 82, 67, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 52, 41, 12, 1, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 50, 32, 32, 32, 82, 67, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 40, 12, 1, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 51, 32, 32, 32, 82, 67, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 32, 12, 1, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 52, 32, 32, 32, 82, 67, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 231, 70, 12, 1, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 53, 32, 32, 32, 82, 67, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 1, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 54, 32, 32, 32, 82, 67, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 1, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 82, 67, 73, 48, 55, 32, 32, 32, 82, 67, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 70, 85, 50, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 70, 85, 84, 85, 82, 69, 83, 44, 32, 68, 69, 67, 61, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 65, 0, 12, 2, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 83, 48, 49, 32, 32, 32, 83, 70, 32, 84, 83, 32, 76, 69, 86, 69, 76, 32, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 70, 32, 32, 32, 32, 51, 45, 89, 32, 69, 88, 67, 72, 65, 78, 71, 69, 32, 70, 85, 78, 68, 32, 78, 79, 84, 69, 83, 32, 70, 85, 84, 85, 82, 69, 83, 32, 1, 1, 1, 2, 1, 0, 0, 28, 12, 3, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 49, 32, 32, 32, 69, 70, 51, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 50, 32, 32, 32, 69, 70, 51, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 3, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 69, 70, 51, 48, 51, 32, 32, 32, 69, 70, 51, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 70, 32, 32, 32, 32, 67, 79, 77, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 8, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 49, 32, 32, 32, 67, 79, 77, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 8, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 67, 79, 77, 48, 50, 32, 32, 32, 67, 79, 77, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 174, 70, 12, 16, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 70, 32, 32, 32, 32, 77, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 16, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 67, 32, 32, 32, 32, 77, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 157, 32, 12, 16, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 80, 32, 32, 32, 32, 77, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 16, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 49, 32, 32, 32, 77, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 171, 0, 12, 16, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 50, 32, 32, 32, 77, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 51, 32, 32, 32, 77, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 52, 32, 32, 32, 77, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 53, 32, 32, 32, 77, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 54, 32, 32, 32, 77, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 16, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 77, 72, 73, 48, 55, 32, 32, 32, 77, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 16, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 77, 72, 73, 32, 77, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 20, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 67, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 80, 32, 32, 32, 32, 83, 84, 79, 67, 75, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 20, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 83, 79, 77, 49, 32, 32, 32, 32, 83, 79, 77, 32, 83, 89, 78, 84, 72, 69, 84, 73, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 20, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 83, 79, 77, 32, 83, 79, 77, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 73, 66, 70, 32, 32, 32, 32, 72, 73, 66, 79, 82, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 24, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 24, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 48, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 48, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 52, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 53, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 54, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 24, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 55, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 56, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 49, 57, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 49, 57, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 48, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 7, 12, 24, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 49, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 24, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 50, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 23, 71, 12, 24, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 83, 72, 50, 51, 32, 32, 32, 72, 73, 66, 79, 82, 32, 84, 50, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 70, 32, 32, 32, 32, 68, 74, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 81, 6, 12, 27, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 49, 32, 32, 32, 68, 74, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 50, 32, 32, 32, 68, 74, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 27, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 51, 32, 32, 32, 68, 74, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 27, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 68, 74, 73, 48, 52, 32, 32, 32, 68, 74, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 70, 32, 32, 32, 32, 72, 83, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 34, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 67, 32, 32, 32, 32, 72, 83, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 34, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 80, 32, 32, 32, 32, 72, 83, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 32, 32, 12, 34, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 68, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 68, 68, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 222, 142, 12, 34, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 73, 83, 84, 71, 32, 32, 32, 32, 73, 78, 68, 69, 88, 32, 83, 84, 82, 65, 78, 71, 76, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 49, 32, 32, 32, 72, 83, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 83, 80, 12, 34, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 50, 32, 32, 32, 72, 83, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 51, 32, 32, 32, 72, 83, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 84, 12, 34, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 52, 32, 32, 32, 72, 83, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 34, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 53, 32, 32, 32, 72, 83, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 179, 71, 12, 34, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 54, 32, 32, 32, 72, 83, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 34, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 83, 73, 48, 55, 32, 32, 32, 72, 83, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 49, 32, 12, 34, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 83, 73, 32, 72, 83, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 35, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 67, 32, 32, 32, 32, 88, 72, 83, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 35, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 83, 80, 32, 32, 32, 32, 88, 72, 83, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 72, 72, 83, 32, 32, 32, 32, 88, 72, 72, 32, 83, 80, 79, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 2, 2, 2, 0, 0, 0, 0, 12, 37, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 67, 32, 32, 32, 32, 88, 72, 72, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 37, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 88, 72, 72, 80, 32, 32, 32, 32, 88, 72, 72, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 38, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 70, 32, 32, 32, 32, 72, 72, 73, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 4, 1, 0, 0, 0, 12, 38, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 67, 32, 32, 32, 32, 72, 72, 73, 32, 67, 65, 76, 76, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 0, 0, 12, 38, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 80, 32, 32, 32, 32, 72, 72, 73, 32, 80, 85, 84, 32, 79, 80, 84, 73, 79, 78, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 2, 82, 82, 12, 38, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 49, 32, 32, 32, 72, 72, 73, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 69, 69, 12, 38, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 50, 32, 32, 32, 72, 72, 73, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 51, 32, 32, 32, 72, 72, 73, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 38, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 52, 32, 32, 32, 72, 72, 73, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 53, 32, 32, 32, 72, 72, 73, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 78, 73, 12, 38, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 54, 32, 32, 32, 72, 72, 73, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 38, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 72, 72, 73, 48, 55, 32, 32, 32, 72, 72, 73, 32, 84, 48, 55, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 78, 12, 38, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 84, 77, 67, 95, 72, 72, 73, 32, 72, 72, 73, 32, 84, 77, 67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 32, 32, 12, 51, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 70, 32, 32, 32, 32, 86, 79, 76, 32, 70, 85, 84, 85, 82, 69, 83, 46, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 32, 32, 12, 51, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 49, 32, 32, 32, 86, 79, 76, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 51, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 86, 79, 76, 48, 50, 32, 32, 32, 86, 79, 76, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 175, 70, 12, 60, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 70, 32, 32, 32, 32, 70, 88, 67, 32, 70, 85, 84, 85, 82, 69, 83, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 1, 1, 1, 2, 1, 0, 0, 0, 12, 60, 201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 49, 32, 32, 32, 70, 88, 67, 32, 84, 48, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 71, 6, 12, 60, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 50, 32, 32, 32, 70, 88, 67, 32, 84, 48, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 51, 32, 32, 32, 70, 88, 67, 32, 84, 48, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 221, 41, 12, 60, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 52, 32, 32, 32, 70, 88, 67, 32, 84, 48, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 53, 32, 32, 32, 70, 88, 67, 32, 84, 48, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0, 12, 60, 206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 70, 88, 67, 48, 54, 32, 32, 32, 70, 88, 67, 32, 84, 48, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 2, 1, 2, 1, 0, 0, 0, 0]
}

VS Code version: Code 1.23.1 (d0182c3, 2018-05-10T16:04:33.747Z)
OS version: Linux x64 3.13.0-40-generic

System Info
Item Value
CPUs Intel(R) Xeon(R) CPU E5-1660 v4 @ 3.20GHz (16 x 3201)
GPU Status 2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
native_gpu_memory_buffers: disabled_software
rasterization: disabled_software
video_decode: unavailable_software
video_encode: enabled
vpx_decode: unavailable_software
webgl: enabled
webgl2: enabled
Load (avg) 1, 1, 1
Memory (System) 31.35GB (14.19GB free)
Process Argv /home/_____/VSCode-linux-x64/code -n
Screen Reader no
VM 0%
Extensions (16)
Extension Author (truncated) Version
vscode-markdownlint Dav 0.18.0
xml Dot 2.2.0
vscode-docker Pet 0.0.27
gitignore cod 0.5.0
githistory don 0.4.1
python ms- 2018.4.0
cpptools ms- 0.17.4
title nil 0.1.0
vscode-icons rob 7.23.0
bash-debug rog 0.2.0
annotator ryu 0.11.0
code-spell-checker str 1.6.10
mako tom 0.2.0
cmake twx 0.0.17
gitblame wad 2.4.2
vscode-todo-highlight way 0.5.12

(1 theme extensions excluded)

@aeschli
Copy link
Contributor

aeschli commented Jun 5, 2018

For performance reasons, we skip tokenization for lines that are longer than 20k.
@alexandrudima It would be good if the user can see a message when that happens.

@wistcc
Copy link
Contributor

wistcc commented Jun 6, 2018

I would like to take this one if you guys think this is a good first issue but I would need some guidance.

I already added this:
/src/vs/workbench/services/textMate/electron-browser/TMSyntax.ts

// Do not attempt to tokenize if a line has over 20k
if (line.length >= 20000) {
	const lineText = line.substr(0, 15);
	console.log(`Line (${lineText}...): longer than 20k characters, tokenization skipped.`);
	window.showWarningMessage(nls.localize('too many characters', "The line '{0}' is longer than 20k characters, for performance reasons tokenization is skipped.", lineText));
	return nullTokenize2(this._languageId, line, state, offsetDelta);
}

but I'm getting this error [ts] File '/Users/wistcc/Dev/vscode/src/vs/vscode.d.ts' is not a module., so, I'm not sure how to import vscode correctly into this file in order to use the window.showWarningMessage method.

cc: @aeschli @alexandrudima

@aeschli
Copy link
Contributor

aeschli commented Jun 6, 2018

This code runs on the renderer side, while vscode.d.ts is only for the extension host process.
We have to wait for @alexandrudima to add his thoughts.
There's something similar when we open very large file. Check out the LargeFileOptimizationsWarner for that.

@alexdima
Copy link
Member

alexdima commented Jun 11, 2018

window.showWarningMessage is API available only to vscode extensions and should not be used in the UI code. The UI code should use INotificationService and inject itself with it.

A possible fix would be to prompt (as suggested above), but prompt only once. It would be very annoying to prompt 20 times if there are 20 lines over 20.000 chars.

@alexdima alexdima added the feature-request Request for new features or functionality label Jun 11, 2018
@alexdima
Copy link
Member

alexdima commented Jun 11, 2018

PR #51265 tackles this.

@alexdima alexdima added this to the June 2018 milestone Jun 11, 2018
@alexdima alexdima added the verification-needed Verification of issue is requested label Jun 25, 2018
@alexdima
Copy link
Member

To verify, open a file with a very large line.

A message should be shown, explaining why the large line is not tokenized.

@wistcc
Copy link
Contributor

wistcc commented Jun 25, 2018

I tried on the production app (May 2018 (version 1.24)) and I didn't get the notification, I guess it hasn't been deployed there yet, right?

Where should I verify? @alexandrudima

@alexdima
Copy link
Member

@wistcc We would want that someone else than the author of the change would verify that the issue is fixed. So, there's nothing for you to do here, since you are the author. Someone from the vscode team will pick up this issue and verify it.

(The change will make it to the stable channel in the following couple of weeks. For now it is available in the insiders channel at https://code.visualstudio.com/insiders/)

@miguelsolorio miguelsolorio added verified Verification succeeded and removed verification-needed Verification of issue is requested labels Jun 26, 2018
@miguelsolorio
Copy link
Contributor

Verified

image

@SharakPL
Copy link
Contributor

SharakPL commented Jul 8, 2018

How about using editor.hover field for this kind of information? Lines that long only occure on minified files or base64 data images which doesn't actually need any syntax highlighting so this notification is completely useless in my opinion. How to get rid of it?

@vscodebot vscodebot bot locked and limited conversation to collaborators Jul 26, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature-request Request for new features or functionality verified Verification succeeded
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants