mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-24 09:25:15 +00:00
1 line
43 KiB
JSON
1 line
43 KiB
JSON
{"ast":null,"code":"/*! https://mths.be/punycode v1.4.1 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;) {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;; k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;; k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","map":{"version":3,"sources":["/app/node_modules/node-libs-browser/node_modules/punycode/punycode.js"],"names":["root","freeExports","exports","nodeType","freeModule","module","freeGlobal","global","window","self","punycode","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","key","error","type","RangeError","map","array","fn","length","result","mapDomain","string","parts","split","replace","labels","encoded","join","ucs2decode","output","counter","value","extra","charCodeAt","push","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","inputLength","out","i","n","bias","basic","j","index","oldi","w","t","baseMinusT","lastIndexOf","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","slice","toLowerCase","toASCII","define","amd","hasOwnProperty"],"mappings":"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","sourcesContent":["/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n"]},"metadata":{},"sourceType":"script"} |