|  | // Copyright 2016 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package json | 
|  |  | 
|  | import "unicode/utf8" | 
|  |  | 
|  | // safeSet holds the value true if the ASCII character with the given array | 
|  | // position can be represented inside a JSON string without any further | 
|  | // escaping. | 
|  | // | 
|  | // All values are true except for the ASCII control characters (0-31), the | 
|  | // double quote ("), and the backslash character ("\"). | 
|  | var safeSet = [utf8.RuneSelf]bool{ | 
|  | ' ':      true, | 
|  | '!':      true, | 
|  | '"':      false, | 
|  | '#':      true, | 
|  | '$':      true, | 
|  | '%':      true, | 
|  | '&':      true, | 
|  | '\'':     true, | 
|  | '(':      true, | 
|  | ')':      true, | 
|  | '*':      true, | 
|  | '+':      true, | 
|  | ',':      true, | 
|  | '-':      true, | 
|  | '.':      true, | 
|  | '/':      true, | 
|  | '0':      true, | 
|  | '1':      true, | 
|  | '2':      true, | 
|  | '3':      true, | 
|  | '4':      true, | 
|  | '5':      true, | 
|  | '6':      true, | 
|  | '7':      true, | 
|  | '8':      true, | 
|  | '9':      true, | 
|  | ':':      true, | 
|  | ';':      true, | 
|  | '<':      true, | 
|  | '=':      true, | 
|  | '>':      true, | 
|  | '?':      true, | 
|  | '@':      true, | 
|  | 'A':      true, | 
|  | 'B':      true, | 
|  | 'C':      true, | 
|  | 'D':      true, | 
|  | 'E':      true, | 
|  | 'F':      true, | 
|  | 'G':      true, | 
|  | 'H':      true, | 
|  | 'I':      true, | 
|  | 'J':      true, | 
|  | 'K':      true, | 
|  | 'L':      true, | 
|  | 'M':      true, | 
|  | 'N':      true, | 
|  | 'O':      true, | 
|  | 'P':      true, | 
|  | 'Q':      true, | 
|  | 'R':      true, | 
|  | 'S':      true, | 
|  | 'T':      true, | 
|  | 'U':      true, | 
|  | 'V':      true, | 
|  | 'W':      true, | 
|  | 'X':      true, | 
|  | 'Y':      true, | 
|  | 'Z':      true, | 
|  | '[':      true, | 
|  | '\\':     false, | 
|  | ']':      true, | 
|  | '^':      true, | 
|  | '_':      true, | 
|  | '`':      true, | 
|  | 'a':      true, | 
|  | 'b':      true, | 
|  | 'c':      true, | 
|  | 'd':      true, | 
|  | 'e':      true, | 
|  | 'f':      true, | 
|  | 'g':      true, | 
|  | 'h':      true, | 
|  | 'i':      true, | 
|  | 'j':      true, | 
|  | 'k':      true, | 
|  | 'l':      true, | 
|  | 'm':      true, | 
|  | 'n':      true, | 
|  | 'o':      true, | 
|  | 'p':      true, | 
|  | 'q':      true, | 
|  | 'r':      true, | 
|  | 's':      true, | 
|  | 't':      true, | 
|  | 'u':      true, | 
|  | 'v':      true, | 
|  | 'w':      true, | 
|  | 'x':      true, | 
|  | 'y':      true, | 
|  | 'z':      true, | 
|  | '{':      true, | 
|  | '|':      true, | 
|  | '}':      true, | 
|  | '~':      true, | 
|  | '\u007f': true, | 
|  | } | 
|  |  | 
|  | // htmlSafeSet holds the value true if the ASCII character with the given | 
|  | // array position can be safely represented inside a JSON string, embedded | 
|  | // inside of HTML <script> tags, without any additional escaping. | 
|  | // | 
|  | // All values are true except for the ASCII control characters (0-31), the | 
|  | // double quote ("), the backslash character ("\"), HTML opening and closing | 
|  | // tags ("<" and ">"), and the ampersand ("&"). | 
|  | var htmlSafeSet = [utf8.RuneSelf]bool{ | 
|  | ' ':      true, | 
|  | '!':      true, | 
|  | '"':      false, | 
|  | '#':      true, | 
|  | '$':      true, | 
|  | '%':      true, | 
|  | '&':      false, | 
|  | '\'':     true, | 
|  | '(':      true, | 
|  | ')':      true, | 
|  | '*':      true, | 
|  | '+':      true, | 
|  | ',':      true, | 
|  | '-':      true, | 
|  | '.':      true, | 
|  | '/':      true, | 
|  | '0':      true, | 
|  | '1':      true, | 
|  | '2':      true, | 
|  | '3':      true, | 
|  | '4':      true, | 
|  | '5':      true, | 
|  | '6':      true, | 
|  | '7':      true, | 
|  | '8':      true, | 
|  | '9':      true, | 
|  | ':':      true, | 
|  | ';':      true, | 
|  | '<':      false, | 
|  | '=':      true, | 
|  | '>':      false, | 
|  | '?':      true, | 
|  | '@':      true, | 
|  | 'A':      true, | 
|  | 'B':      true, | 
|  | 'C':      true, | 
|  | 'D':      true, | 
|  | 'E':      true, | 
|  | 'F':      true, | 
|  | 'G':      true, | 
|  | 'H':      true, | 
|  | 'I':      true, | 
|  | 'J':      true, | 
|  | 'K':      true, | 
|  | 'L':      true, | 
|  | 'M':      true, | 
|  | 'N':      true, | 
|  | 'O':      true, | 
|  | 'P':      true, | 
|  | 'Q':      true, | 
|  | 'R':      true, | 
|  | 'S':      true, | 
|  | 'T':      true, | 
|  | 'U':      true, | 
|  | 'V':      true, | 
|  | 'W':      true, | 
|  | 'X':      true, | 
|  | 'Y':      true, | 
|  | 'Z':      true, | 
|  | '[':      true, | 
|  | '\\':     false, | 
|  | ']':      true, | 
|  | '^':      true, | 
|  | '_':      true, | 
|  | '`':      true, | 
|  | 'a':      true, | 
|  | 'b':      true, | 
|  | 'c':      true, | 
|  | 'd':      true, | 
|  | 'e':      true, | 
|  | 'f':      true, | 
|  | 'g':      true, | 
|  | 'h':      true, | 
|  | 'i':      true, | 
|  | 'j':      true, | 
|  | 'k':      true, | 
|  | 'l':      true, | 
|  | 'm':      true, | 
|  | 'n':      true, | 
|  | 'o':      true, | 
|  | 'p':      true, | 
|  | 'q':      true, | 
|  | 'r':      true, | 
|  | 's':      true, | 
|  | 't':      true, | 
|  | 'u':      true, | 
|  | 'v':      true, | 
|  | 'w':      true, | 
|  | 'x':      true, | 
|  | 'y':      true, | 
|  | 'z':      true, | 
|  | '{':      true, | 
|  | '|':      true, | 
|  | '}':      true, | 
|  | '~':      true, | 
|  | '\u007f': true, | 
|  | } |