Any character other than the digits 1-9 may be preceded by a reverse solidus '\', and unless the combination has an explicitly defined expansion the character is included without the solidus. JSON5 adds \', \0 and \v to the set of defined escapes, and an escaped newline is omitted from a string. In the test case Perl uses \13 instead of \v in the output but it is the correct character (13 octal = 11 decimal = '\v').
3312 lines
84 KiB
Perl
3312 lines
84 KiB
Perl
# Parser test cases from https://github.com/lloyd/yajl
|
|
#
|
|
# This file is generated, DO NOT EDIT!
|
|
#
|
|
# See comments in yajlTestConverter.pl for instructions on
|
|
# how to regenerate this file from the original yajl sources.
|
|
|
|
sub cases {
|
|
my $VAR1 = [
|
|
{
|
|
name => "doubles",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"[ .1e2, 10., +3.141569, -.1e4, NaN, Infinity, +Infinity, -Infinity ]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"double: 10",
|
|
"double: 10",
|
|
"double: 3.14157",
|
|
"double: -1000",
|
|
"double: NaN",
|
|
"double: Infinity",
|
|
"double: Infinity",
|
|
"double: -Infinity",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "integers",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"[ +1,+2,+3,+4,+5,+6,+7,+8,+9,",
|
|
" 0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,",
|
|
" 0xa,0xb,0xc,0xd,0xe,0xf,",
|
|
" 0xA,0xB,0xC,0xD,0xE,0xF,",
|
|
" +0xfedcba98, -0x6789ABCD,",
|
|
" +123456789 , -123456789,",
|
|
" +2147483647, -2147483648,",
|
|
" 0x7fffFFFFffffFFFF, -0x7FFFffffFFFFffff,",
|
|
" 9223372036854775807, -9223372036854775807",
|
|
"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"integer: 1",
|
|
"integer: 2",
|
|
"integer: 3",
|
|
"integer: 4",
|
|
"integer: 5",
|
|
"integer: 6",
|
|
"integer: 7",
|
|
"integer: 8",
|
|
"integer: 9",
|
|
"integer: 1",
|
|
"integer: 2",
|
|
"integer: 3",
|
|
"integer: 4",
|
|
"integer: 5",
|
|
"integer: 6",
|
|
"integer: 7",
|
|
"integer: 8",
|
|
"integer: 9",
|
|
"integer: 10",
|
|
"integer: 11",
|
|
"integer: 12",
|
|
"integer: 13",
|
|
"integer: 14",
|
|
"integer: 15",
|
|
"integer: 10",
|
|
"integer: 11",
|
|
"integer: 12",
|
|
"integer: 13",
|
|
"integer: 14",
|
|
"integer: 15",
|
|
"integer: 4275878552",
|
|
"integer: -1737075661",
|
|
"integer: 123456789",
|
|
"integer: -123456789",
|
|
"integer: 2147483647",
|
|
"integer: -2147483648",
|
|
"integer: 9223372036854775807",
|
|
"integer: -9223372036854775807",
|
|
"integer: 9223372036854775807",
|
|
"integer: -9223372036854775807",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "map_identifiers",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"{",
|
|
" \$:1,",
|
|
" _:2,",
|
|
" A:3,",
|
|
" Z:4,",
|
|
" a:5,",
|
|
" z:6,",
|
|
" \$1:7,",
|
|
" _zz:8,",
|
|
" ZZ9\$Zalpha:9",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: '\$'",
|
|
"integer: 1",
|
|
"key: '_'",
|
|
"integer: 2",
|
|
"key: 'A'",
|
|
"integer: 3",
|
|
"key: 'Z'",
|
|
"integer: 4",
|
|
"key: 'a'",
|
|
"integer: 5",
|
|
"key: 'z'",
|
|
"integer: 6",
|
|
"key: '\$1'",
|
|
"integer: 7",
|
|
"key: '_zz'",
|
|
"integer: 8",
|
|
"key: 'ZZ9\$Zalpha'",
|
|
"integer: 9",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "simple_with_comments",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"{",
|
|
" \"this\": \"is\", // ignore this",
|
|
" \"really\": \"simple\",",
|
|
" /* ignore",
|
|
"this",
|
|
"too * / ",
|
|
"** //",
|
|
"(/",
|
|
"******/",
|
|
" \"json\": \"right?\"",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'this'",
|
|
"string: 'is'",
|
|
"key: 'really'",
|
|
"string: 'simple'",
|
|
"key: 'json'",
|
|
"string: 'right?'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "strings",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"[",
|
|
" \"Hello\\!\",",
|
|
" \"\\\"Evenin\\',\\\" said the barman.\",",
|
|
" // The following string has 3 different escaped line-endings,",
|
|
" // LF, CR, and CR+LF, which all disappear from the final string.",
|
|
" \"Well \\",
|
|
"hi \\\rthere \\\r",
|
|
"y'all!\",",
|
|
" \"\\b\\f\\n\\r\\t\\v\\\\\",",
|
|
" \"\\A\\C\\/\\D\\C\",",
|
|
"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'Hello!'",
|
|
"string: '\"Evenin',\" said the barman.'",
|
|
"string: 'Well hi there y'all!'",
|
|
"string: '\b\f",
|
|
"\r\t\13\\'",
|
|
"string: 'AC/DC'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "trailing_commas",
|
|
opts => [
|
|
-5
|
|
],
|
|
input => [
|
|
"{\"array\":[1,2,],\"map\":{\"a\":1,},}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'array'",
|
|
"array open '['",
|
|
"integer: 1",
|
|
"integer: 2",
|
|
"array close ']'",
|
|
"key: 'map'",
|
|
"map open '{'",
|
|
"key: 'a'",
|
|
"integer: 1",
|
|
"map close '}'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "difficult_json_c_test_case_with_comments",
|
|
opts => [
|
|
"-c"
|
|
],
|
|
input => [
|
|
"{ \"glossary\": { /* you */ \"title\": /**/ \"example glossary\", /*should*/\"GlossDiv\": { \"title\": /*never*/\"S\", /*ever*/\"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", /*see*/\"GlossSeeAlso\"/*this*/:/*coming*/[/*out*/\"GML\"/*of*/,/*the*/\"XML\"/*parser!*/, \"markup\"] /*hey*/}/*ho*/]/*hey*/}/*ho*/} } // and the parser won't even get this far, so chill. /* hah!",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'glossary'",
|
|
"map open '{'",
|
|
"key: 'title'",
|
|
"string: 'example glossary'",
|
|
"key: 'GlossDiv'",
|
|
"map open '{'",
|
|
"key: 'title'",
|
|
"string: 'S'",
|
|
"key: 'GlossList'",
|
|
"array open '['",
|
|
"map open '{'",
|
|
"key: 'ID'",
|
|
"string: 'SGML'",
|
|
"key: 'SortAs'",
|
|
"string: 'SGML'",
|
|
"key: 'GlossTerm'",
|
|
"string: 'Standard Generalized Markup Language'",
|
|
"key: 'Acronym'",
|
|
"string: 'SGML'",
|
|
"key: 'Abbrev'",
|
|
"string: 'ISO 8879:1986'",
|
|
"key: 'GlossDef'",
|
|
"string: 'A meta-markup language, used to create markup languages such as DocBook.'",
|
|
"key: 'GlossSeeAlso'",
|
|
"array open '['",
|
|
"string: 'GML'",
|
|
"string: 'XML'",
|
|
"string: 'markup'",
|
|
"array close ']'",
|
|
"map close '}'",
|
|
"array close ']'",
|
|
"map close '}'",
|
|
"map close '}'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "simple_with_comments",
|
|
opts => [
|
|
"-c"
|
|
],
|
|
input => [
|
|
"{",
|
|
" \"this\": \"is\", // ignore this",
|
|
" \"really\": \"simple\",",
|
|
" /* ignore",
|
|
"this",
|
|
"too * / ",
|
|
"** //",
|
|
"(/",
|
|
"******/",
|
|
" \"json\": \"right?\"",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'this'",
|
|
"string: 'is'",
|
|
"key: 'really'",
|
|
"string: 'simple'",
|
|
"key: 'json'",
|
|
"string: 'right?'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "false_then_garbage",
|
|
opts => [
|
|
"-g"
|
|
],
|
|
input => [
|
|
"falsex"
|
|
],
|
|
gives => [
|
|
"bool: false",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "null_then_garbage",
|
|
opts => [
|
|
"-g"
|
|
],
|
|
input => [
|
|
"nullx",
|
|
""
|
|
],
|
|
gives => [
|
|
"null",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "true_then_garbage",
|
|
opts => [
|
|
"-g"
|
|
],
|
|
input => [
|
|
"truex"
|
|
],
|
|
gives => [
|
|
"bool: true",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "eof",
|
|
opts => [
|
|
"-m"
|
|
],
|
|
input => [
|
|
"{ \"123\":",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: '123'",
|
|
"parse error: premature EOF",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "integers",
|
|
opts => [
|
|
"-m"
|
|
],
|
|
input => [
|
|
"1221 21",
|
|
""
|
|
],
|
|
gives => [
|
|
"integer: 1221",
|
|
"integer: 21",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "multiple",
|
|
opts => [
|
|
"-m"
|
|
],
|
|
input => [
|
|
"",
|
|
"{}",
|
|
"{}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"map close '}'",
|
|
"map open '{'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "stuff",
|
|
opts => [
|
|
"-m"
|
|
],
|
|
input => [
|
|
"{}",
|
|
"[]",
|
|
"[]",
|
|
"\"sdfasd\"",
|
|
123,
|
|
"{ \"123\" : 123 }",
|
|
"3.1e124",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"map close '}'",
|
|
"array open '['",
|
|
"array close ']'",
|
|
"array open '['",
|
|
"array close ']'",
|
|
"string: 'sdfasd'",
|
|
"integer: 123",
|
|
"map open '{'",
|
|
"key: '123'",
|
|
"integer: 123",
|
|
"map close '}'",
|
|
"double: 3.1e+124",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "array_open",
|
|
opts => [
|
|
"-p"
|
|
],
|
|
input => [
|
|
"[",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "eof_str",
|
|
opts => [
|
|
"-p"
|
|
],
|
|
input => [
|
|
"\"abc"
|
|
],
|
|
gives => [
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "map_open",
|
|
opts => [
|
|
"-p"
|
|
],
|
|
input => [
|
|
"{",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "partial_ok",
|
|
opts => [
|
|
"-p"
|
|
],
|
|
input => [
|
|
"[ \"foo\", \"bar\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'foo'",
|
|
"string: 'bar'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "array",
|
|
opts => [],
|
|
input => [
|
|
"[\"foo\",",
|
|
" \"bar\", \"baz\",",
|
|
" true,false,null,{\"key\":\"value\"},",
|
|
" [null,null,null,[]],",
|
|
" \"\\n\\r\\\\\"",
|
|
"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'foo'",
|
|
"string: 'bar'",
|
|
"string: 'baz'",
|
|
"bool: true",
|
|
"bool: false",
|
|
"null",
|
|
"map open '{'",
|
|
"key: 'key'",
|
|
"string: 'value'",
|
|
"map close '}'",
|
|
"array open '['",
|
|
"null",
|
|
"null",
|
|
"null",
|
|
"array open '['",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"string: '",
|
|
"\r\\'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "array_close",
|
|
opts => [],
|
|
input => [
|
|
"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"parse error: unallowed token at this point in JSON text",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "bignums",
|
|
opts => [],
|
|
input => [
|
|
"[ 9223372036854775807, -9223372036854775807 ]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"integer: 9223372036854775807",
|
|
"integer: -9223372036854775807",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "bogus_char",
|
|
opts => [],
|
|
input => [
|
|
"[\"this\",\"is\",\"what\",\"should\",\"be\",",
|
|
" \"a happy bit of json\",",
|
|
" \"but someone, misspelled \\\"true\\\"\", ture,",
|
|
" \"who says JSON is easy for humans to generate?\"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'this'",
|
|
"string: 'is'",
|
|
"string: 'what'",
|
|
"string: 'should'",
|
|
"string: 'be'",
|
|
"string: 'a happy bit of json'",
|
|
"string: 'but someone, misspelled \"true\"'",
|
|
"lexical error: invalid string in json text.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "codepoints_from_unicode_org",
|
|
opts => [],
|
|
input => [
|
|
"\"\\u004d\\u0430\\u4e8c\\ud800\\udf02\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"string: 'M\320\260\344\272\214\360\220\214\202'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "deep_arrays",
|
|
opts => [],
|
|
input => [
|
|
"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]"
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array open '['",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "difficult_json_c_test_case",
|
|
opts => [],
|
|
input => [
|
|
"{ \"glossary\": { \"title\": \"example glossary\", \"GlossDiv\": { \"title\": \"S\", \"GlossList\": [ { \"ID\": \"SGML\", \"SortAs\": \"SGML\", \"GlossTerm\": \"Standard Generalized Markup Language\", \"Acronym\": \"SGML\", \"Abbrev\": \"ISO 8879:1986\", \"GlossDef\": \"A meta-markup language, used to create markup languages such as DocBook.\", \"GlossSeeAlso\": [\"GML\", \"XML\", \"markup\"] } ] } } }",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'glossary'",
|
|
"map open '{'",
|
|
"key: 'title'",
|
|
"string: 'example glossary'",
|
|
"key: 'GlossDiv'",
|
|
"map open '{'",
|
|
"key: 'title'",
|
|
"string: 'S'",
|
|
"key: 'GlossList'",
|
|
"array open '['",
|
|
"map open '{'",
|
|
"key: 'ID'",
|
|
"string: 'SGML'",
|
|
"key: 'SortAs'",
|
|
"string: 'SGML'",
|
|
"key: 'GlossTerm'",
|
|
"string: 'Standard Generalized Markup Language'",
|
|
"key: 'Acronym'",
|
|
"string: 'SGML'",
|
|
"key: 'Abbrev'",
|
|
"string: 'ISO 8879:1986'",
|
|
"key: 'GlossDef'",
|
|
"string: 'A meta-markup language, used to create markup languages such as DocBook.'",
|
|
"key: 'GlossSeeAlso'",
|
|
"array open '['",
|
|
"string: 'GML'",
|
|
"string: 'XML'",
|
|
"string: 'markup'",
|
|
"array close ']'",
|
|
"map close '}'",
|
|
"array close ']'",
|
|
"map close '}'",
|
|
"map close '}'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "doubles",
|
|
opts => [],
|
|
input => [
|
|
"[ 0.1e2, 1e1, 3.141569, 10000000000000e-10]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"double: 10",
|
|
"double: 10",
|
|
"double: 3.14157",
|
|
"double: 1000",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "doubles_in_array",
|
|
opts => [],
|
|
input => [
|
|
"[0.00011999999999999999, 6E-06, 6E-06, 1E-06, 1E-06]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"double: 0.00012",
|
|
"double: 6e-06",
|
|
"double: 6e-06",
|
|
"double: 1e-06",
|
|
"double: 1e-06",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "empty_array",
|
|
opts => [],
|
|
input => [
|
|
"[]"
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "empty_string",
|
|
opts => [],
|
|
input => [
|
|
"\"\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"string: ''",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "escaped_bulgarian",
|
|
opts => [],
|
|
input => [
|
|
"[\"\\u0414\\u0430\",",
|
|
" \"\\u041c\\u0443\",",
|
|
" \"\\u0415\\u0431\\u0430\",",
|
|
" \"\\u041c\\u0430\\u0439\\u043a\\u0430\\u0442\\u0430\"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: '\320\224\320\260'",
|
|
"string: '\320\234\321\203'",
|
|
"string: '\320\225\320\261\320\260'",
|
|
"string: '\320\234\320\260\320\271\320\272\320\260\321\202\320\260'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "escaped_foobar",
|
|
opts => [],
|
|
input => [
|
|
"\"\\u0066\\u006f\\u006f\\u0062\\u0061\\u0072\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"string: 'foobar'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "false",
|
|
opts => [],
|
|
input => [
|
|
"false",
|
|
""
|
|
],
|
|
gives => [
|
|
"bool: false",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "false_then_garbage",
|
|
opts => [],
|
|
input => [
|
|
"falsex"
|
|
],
|
|
gives => [
|
|
"bool: false",
|
|
"parse error: trailing garbage",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "issue_7",
|
|
opts => [],
|
|
input => [
|
|
"2009-10-20\@20:38:21.539575",
|
|
""
|
|
],
|
|
gives => [
|
|
"integer: 2009",
|
|
"parse error: trailing garbage",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "null_then_garbage",
|
|
opts => [],
|
|
input => [
|
|
"nullx",
|
|
""
|
|
],
|
|
gives => [
|
|
"null",
|
|
"parse error: trailing garbage",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "true_then_garbage",
|
|
opts => [],
|
|
input => [
|
|
"truex",
|
|
""
|
|
],
|
|
gives => [
|
|
"bool: true",
|
|
"parse error: trailing garbage",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "four_byte_utf8",
|
|
opts => [],
|
|
input => [
|
|
"{ \"U+10ABCD\": \"\364\212\257\215\" }",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'U+10ABCD'",
|
|
"string: '\364\212\257\215'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "hex",
|
|
opts => [],
|
|
input => [
|
|
"0x1",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: probable hex number found, JSON5 is not enabled.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "high_overflow",
|
|
opts => [],
|
|
input => [
|
|
"9223372036854775808"
|
|
],
|
|
gives => [
|
|
"parse error: integer overflow",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "infinity",
|
|
opts => [],
|
|
input => [
|
|
"Infinity",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "integers",
|
|
opts => [],
|
|
input => [
|
|
"[ 1,2,3,4,5,6,7,",
|
|
" 123456789 , -123456789,",
|
|
" 2147483647, -2147483647 ]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"integer: 1",
|
|
"integer: 2",
|
|
"integer: 3",
|
|
"integer: 4",
|
|
"integer: 5",
|
|
"integer: 6",
|
|
"integer: 7",
|
|
"integer: 123456789",
|
|
"integer: -123456789",
|
|
"integer: 2147483647",
|
|
"integer: -2147483647",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "invalid_utf8",
|
|
opts => [],
|
|
input => [
|
|
"[\"\320\224\320\260 \320\234\321 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260\"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"lexical error: invalid bytes in UTF8 string.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "isolated_surrogate_marker",
|
|
opts => [],
|
|
input => [
|
|
"\"\\ud800\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"string: '?'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "leading_zero_in_number",
|
|
opts => [],
|
|
input => [
|
|
"{ \"bad thing\": 01 }",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'bad thing'",
|
|
"integer: 0",
|
|
"parse error: after key and value, inside map, I expect ',' or '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "lonely_minus_sign",
|
|
opts => [],
|
|
input => [
|
|
"[",
|
|
"\t\t\"foo\", true,",
|
|
"\t\ttrue, \"blue\",",
|
|
"\t\t\"baby where are you?\", \"oh boo hoo!\",",
|
|
" - ",
|
|
"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'foo'",
|
|
"bool: true",
|
|
"bool: true",
|
|
"string: 'blue'",
|
|
"string: 'baby where are you?'",
|
|
"string: 'oh boo hoo!'",
|
|
"lexical error: malformed number, a digit is required after the plus/minus sign.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "lonely_number",
|
|
opts => [],
|
|
input => [
|
|
123456789
|
|
],
|
|
gives => [
|
|
"integer: 123456789",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "low_overflow",
|
|
opts => [],
|
|
input => [
|
|
"-9223372036854775808"
|
|
],
|
|
gives => [
|
|
"parse error: integer overflow",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "map_close",
|
|
opts => [],
|
|
input => [
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"parse error: unallowed token at this point in JSON text",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "minus_infinity",
|
|
opts => [],
|
|
input => [
|
|
"-Infinity",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "missing_integer_after_decimal_point",
|
|
opts => [],
|
|
input => [
|
|
"10.e2",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: malformed number, a digit is required after the decimal point.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "missing_integer_after_exponent",
|
|
opts => [],
|
|
input => [
|
|
"10e",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: malformed number, a digit is required after the exponent.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "multiple",
|
|
opts => [],
|
|
input => [
|
|
"",
|
|
"{}",
|
|
"{}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"map close '}'",
|
|
"parse error: trailing garbage",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "nan",
|
|
opts => [],
|
|
input => [
|
|
"NaN",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: special number Infinity or NaN found, JSON5 is not enabled.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "non_utf8_char_in_string",
|
|
opts => [],
|
|
input => [
|
|
"{\"CoreletAPIVersion\":2,\"CoreletType\":\"standalone\",\"documentation\":\"A corelet that provides the capability to upload a folder\222s contents into a user\222s locker.\",\"functions\":[{\"documentation\":\"Displays a dialog box that allows user to select a folder on the local system.\",\"name\":\"ShowBrowseDialog\",\"parameters\":[{\"documentation\":\"The callback function for results.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]},{\"documentation\":\"Uploads all mp3 files in the folder provided.\",\"name\":\"UploadFolder\",\"parameters\":[{\"documentation\":\"The path to upload mp3 files from.\",\"name\":\"path\",\"required\":true,\"type\":\"string\"},{\"documentation\":\"The callback function for progress.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]},{\"documentation\":\"Returns the server name to the current locker service.\",\"name\":\"GetLockerService\",\"parameters\":[]},{\"documentation\":\"Changes the name of the locker service.\",\"name\":\"SetLockerService\",\"parameters\":[{\"documentation\":\"The value of the locker service to set active.\",\"name\":\"LockerService\",\"required\":true,\"type\":\"string\"}]},{\"documentation\":\"Downloads locker files to the suggested folder.\",\"name\":\"DownloadFile\",\"parameters\":[{\"documentation\":\"The origin path of the locker file.\",\"name\":\"path\",\"required\":true,\"type\":\"string\"},{\"documentation\":\"The Window destination path of the locker file.\",\"name\":\"destination\",\"required\":true,\"type\":\"integer\"},{\"documentation\":\"The callback function for progress.\",\"name\":\"callback\",\"required\":true,\"type\":\"callback\"}]}],\"name\":\"LockerUploader\",\"version\":{\"major\":0,\"micro\":1,\"minor\":0},\"versionString\":\"0.0.1\"}"
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'CoreletAPIVersion'",
|
|
"integer: 2",
|
|
"key: 'CoreletType'",
|
|
"string: 'standalone'",
|
|
"key: 'documentation'",
|
|
"lexical error: invalid bytes in UTF8 string.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "partial_bad",
|
|
opts => [],
|
|
input => [
|
|
"[ \"foo\", \"bar\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: 'foo'",
|
|
"string: 'bar'",
|
|
"parse error: premature EOF",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "null",
|
|
opts => [],
|
|
input => [
|
|
"null",
|
|
""
|
|
],
|
|
gives => [
|
|
"null",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "nulls_and_bools",
|
|
opts => [],
|
|
input => [
|
|
"{",
|
|
"\t\"boolean, true\": true,",
|
|
"\t\"boolean, false\": false,",
|
|
"\t\"null\": null",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'boolean, true'",
|
|
"bool: true",
|
|
"key: 'boolean, false'",
|
|
"bool: false",
|
|
"key: 'null'",
|
|
"null",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "simple",
|
|
opts => [],
|
|
input => [
|
|
"{",
|
|
" \"this\": \"is\",",
|
|
" \"really\": \"simple\",",
|
|
" \"json\": \"right?\"",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'this'",
|
|
"string: 'is'",
|
|
"key: 'really'",
|
|
"string: 'simple'",
|
|
"key: 'json'",
|
|
"string: 'right?'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "simple_with_comments",
|
|
opts => [],
|
|
input => [
|
|
"{",
|
|
" \"this\": \"is\", // ignore this",
|
|
" \"really\": \"simple\",",
|
|
" /* ignore",
|
|
"this",
|
|
"too * / ",
|
|
"** //",
|
|
"(/",
|
|
"******/",
|
|
" \"json\": \"right?\"",
|
|
"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'this'",
|
|
"string: 'is'",
|
|
"lexical error: probable comment found in input text, comments are not enabled.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "string_invalid_escape",
|
|
opts => [],
|
|
input => [
|
|
"[\"\\n foo \\/ bar \\r\\f\\\\\\uffff\\t\\b\\\"\\\\ and you can't escape thi\\s\"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"lexical error: inside a string, '\\' occurs before a character which it may not.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "string_invalid_hex_char",
|
|
opts => [],
|
|
input => [
|
|
"\"foo foo, blah blah \\u0123 \\u4567 \\u89ab \\uc/ef \\uABCD \\uEFFE bar baz bing\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: invalid (non-hex) character occurs after '\\u' inside string.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "string_with_escapes",
|
|
opts => [],
|
|
input => [
|
|
"[\"\\n foo \\/ bar \\r\\f\\\\\\uffff\\t\\b\\\"\\\\\",",
|
|
" \"\\\"and this string has an escape at the beginning\",",
|
|
" \"and this string has no escapes\" ]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: '",
|
|
" foo / bar \r\f\\\357\277\277\t\b\"\\'",
|
|
"string: '\"and this string has an escape at the beginning'",
|
|
"string: 'and this string has no escapes'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "string_with_invalid_newline",
|
|
opts => [],
|
|
input => [
|
|
"\"la di dah. this is a string, and I can do this, \\n, but not this",
|
|
"\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"lexical error: invalid character inside string.",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "three_byte_utf8",
|
|
opts => [],
|
|
input => [
|
|
"{\"matzue\": \"\346\235\276\346\261\237\", \"asakusa\": \"\346\265\205\350\215\211\"}",
|
|
""
|
|
],
|
|
gives => [
|
|
"map open '{'",
|
|
"key: 'matzue'",
|
|
"string: '\346\235\276\346\261\237'",
|
|
"key: 'asakusa'",
|
|
"string: '\346\265\205\350\215\211'",
|
|
"map close '}'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "true",
|
|
opts => [],
|
|
input => [
|
|
"true",
|
|
""
|
|
],
|
|
gives => [
|
|
"bool: true",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "unescaped_bulgarian",
|
|
opts => [],
|
|
input => [
|
|
"[\"\320\224\320\260 \320\234\321\203 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260\"]",
|
|
""
|
|
],
|
|
gives => [
|
|
"array open '['",
|
|
"string: '\320\224\320\260 \320\234\321\203 \320\225\320\261\320\260 \320\234\320\260\320\271\320\272\320\260\321\202\320\260'",
|
|
"array close ']'",
|
|
"memory leaks:\t0"
|
|
]
|
|
},
|
|
{
|
|
name => "zerobyte",
|
|
opts => [],
|
|
input => [
|
|
"\"\\u0000\"",
|
|
""
|
|
],
|
|
gives => [
|
|
"string: '\0'",
|
|
"memory leaks:\t0"
|
|
]
|
|
}
|
|
];
|
|
|
|
return @{$VAR1};
|
|
}
|
|
|
|
1;
|