{"ast":null,"code":"// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = function () {\n  // private property\n  var f = String.fromCharCode;\n  var keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n  var keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\n  var baseReverseDic = {};\n\n  function getBaseValue(alphabet, character) {\n    if (!baseReverseDic[alphabet]) {\n      baseReverseDic[alphabet] = {};\n\n      for (var i = 0; i < alphabet.length; i++) {\n        baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n      }\n    }\n\n    return baseReverseDic[alphabet][character];\n  }\n\n  var LZString = {\n    compressToBase64: function (input) {\n      if (input == null) return \"\";\n\n      var res = LZString._compress(input, 6, function (a) {\n        return keyStrBase64.charAt(a);\n      });\n\n      switch (res.length % 4) {\n        // To produce valid Base64\n        default: // When could this happen ?\n\n        case 0:\n          return res;\n\n        case 1:\n          return res + \"===\";\n\n        case 2:\n          return res + \"==\";\n\n        case 3:\n          return res + \"=\";\n      }\n    },\n    decompressFromBase64: function (input) {\n      if (input == null) return \"\";\n      if (input == \"\") return null;\n      return LZString._decompress(input.length, 32, function (index) {\n        return getBaseValue(keyStrBase64, input.charAt(index));\n      });\n    },\n    compressToUTF16: function (input) {\n      if (input == null) return \"\";\n      return LZString._compress(input, 15, function (a) {\n        return f(a + 32);\n      }) + \" \";\n    },\n    decompressFromUTF16: function (compressed) {\n      if (compressed == null) return \"\";\n      if (compressed == \"\") return null;\n      return LZString._decompress(compressed.length, 16384, function (index) {\n        return compressed.charCodeAt(index) - 32;\n      });\n    },\n    //compress into uint8array (UCS-2 big endian format)\n    compressToUint8Array: function (uncompressed) {\n      var compressed = LZString.compress(uncompressed);\n      var buf = new Uint8Array(compressed.length * 2); // 2 bytes per character\n\n      for (var i = 0, TotalLen = compressed.length; i < TotalLen; i++) {\n        var current_value = compressed.charCodeAt(i);\n        buf[i * 2] = current_value >>> 8;\n        buf[i * 2 + 1] = current_value % 256;\n      }\n\n      return buf;\n    },\n    //decompress from uint8array (UCS-2 big endian format)\n    decompressFromUint8Array: function (compressed) {\n      if (compressed === null || compressed === undefined) {\n        return LZString.decompress(compressed);\n      } else {\n        var buf = new Array(compressed.length / 2); // 2 bytes per character\n\n        for (var i = 0, TotalLen = buf.length; i < TotalLen; i++) {\n          buf[i] = compressed[i * 2] * 256 + compressed[i * 2 + 1];\n        }\n\n        var result = [];\n        buf.forEach(function (c) {\n          result.push(f(c));\n        });\n        return LZString.decompress(result.join(''));\n      }\n    },\n    //compress into a string that is already URI encoded\n    compressToEncodedURIComponent: function (input) {\n      if (input == null) return \"\";\n      return LZString._compress(input, 6, function (a) {\n        return keyStrUriSafe.charAt(a);\n      });\n    },\n    //decompress from an output of compressToEncodedURIComponent\n    decompressFromEncodedURIComponent: function (input) {\n      if (input == null) return \"\";\n      if (input == \"\") return null;\n      input = input.replace(/ /g, \"+\");\n      return LZString._decompress(input.length, 32, function (index) {\n        return getBaseValue(keyStrUriSafe, input.charAt(index));\n      });\n    },\n    compress: function (uncompressed) {\n      return LZString._compress(uncompressed, 16, function (a) {\n        return f(a);\n      });\n    },\n    _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n      if (uncompressed == null) return \"\";\n      var i,\n          value,\n          context_dictionary = {},\n          context_dictionaryToCreate = {},\n          context_c = \"\",\n          context_wc = \"\",\n          context_w = \"\",\n          context_enlargeIn = 2,\n          // Compensate for the first entry which should not count\n      context_dictSize = 3,\n          context_numBits = 2,\n          context_data = [],\n          context_data_val = 0,\n          context_data_position = 0,\n          ii;\n\n      for (ii = 0; ii < uncompressed.length; ii += 1) {\n        context_c = uncompressed.charAt(ii);\n\n        if (!Object.prototype.hasOwnProperty.call(context_dictionary, context_c)) {\n          context_dictionary[context_c] = context_dictSize++;\n          context_dictionaryToCreate[context_c] = true;\n        }\n\n        context_wc = context_w + context_c;\n\n        if (Object.prototype.hasOwnProperty.call(context_dictionary, context_wc)) {\n          context_w = context_wc;\n        } else {\n          if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n            if (context_w.charCodeAt(0) < 256) {\n              for (i = 0; i < context_numBits; i++) {\n                context_data_val = context_data_val << 1;\n\n                if (context_data_position == bitsPerChar - 1) {\n                  context_data_position = 0;\n                  context_data.push(getCharFromInt(context_data_val));\n                  context_data_val = 0;\n                } else {\n                  context_data_position++;\n                }\n              }\n\n              value = context_w.charCodeAt(0);\n\n              for (i = 0; i < 8; i++) {\n                context_data_val = context_data_val << 1 | value & 1;\n\n                if (context_data_position == bitsPerChar - 1) {\n                  context_data_position = 0;\n                  context_data.push(getCharFromInt(context_data_val));\n                  context_data_val = 0;\n                } else {\n                  context_data_position++;\n                }\n\n                value = value >> 1;\n              }\n            } else {\n              value = 1;\n\n              for (i = 0; i < context_numBits; i++) {\n                context_data_val = context_data_val << 1 | value;\n\n                if (context_data_position == bitsPerChar - 1) {\n                  context_data_position = 0;\n                  context_data.push(getCharFromInt(context_data_val));\n                  context_data_val = 0;\n                } else {\n                  context_data_position++;\n                }\n\n                value = 0;\n              }\n\n              value = context_w.charCodeAt(0);\n\n              for (i = 0; i < 16; i++) {\n                context_data_val = context_data_val << 1 | value & 1;\n\n                if (context_data_position == bitsPerChar - 1) {\n                  context_data_position = 0;\n                  context_data.push(getCharFromInt(context_data_val));\n                  context_data_val = 0;\n                } else {\n                  context_data_position++;\n                }\n\n                value = value >> 1;\n              }\n            }\n\n            context_enlargeIn--;\n\n            if (context_enlargeIn == 0) {\n              context_enlargeIn = Math.pow(2, context_numBits);\n              context_numBits++;\n            }\n\n            delete context_dictionaryToCreate[context_w];\n          } else {\n            value = context_dictionary[context_w];\n\n            for (i = 0; i < context_numBits; i++) {\n              context_data_val = context_data_val << 1 | value & 1;\n\n              if (context_data_position == bitsPerChar - 1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n\n              value = value >> 1;\n            }\n          }\n\n          context_enlargeIn--;\n\n          if (context_enlargeIn == 0) {\n            context_enlargeIn = Math.pow(2, context_numBits);\n            context_numBits++;\n          } // Add wc to the dictionary.\n\n\n          context_dictionary[context_wc] = context_dictSize++;\n          context_w = String(context_c);\n        }\n      } // Output the code for w.\n\n\n      if (context_w !== \"\") {\n        if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate, context_w)) {\n          if (context_w.charCodeAt(0) < 256) {\n            for (i = 0; i < context_numBits; i++) {\n              context_data_val = context_data_val << 1;\n\n              if (context_data_position == bitsPerChar - 1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n            }\n\n            value = context_w.charCodeAt(0);\n\n            for (i = 0; i < 8; i++) {\n              context_data_val = context_data_val << 1 | value & 1;\n\n              if (context_data_position == bitsPerChar - 1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n\n              value = value >> 1;\n            }\n          } else {\n            value = 1;\n\n            for (i = 0; i < context_numBits; i++) {\n              context_data_val = context_data_val << 1 | value;\n\n              if (context_data_position == bitsPerChar - 1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n\n              value = 0;\n            }\n\n            value = context_w.charCodeAt(0);\n\n            for (i = 0; i < 16; i++) {\n              context_data_val = context_data_val << 1 | value & 1;\n\n              if (context_data_position == bitsPerChar - 1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n\n              value = value >> 1;\n            }\n          }\n\n          context_enlargeIn--;\n\n          if (context_enlargeIn == 0) {\n            context_enlargeIn = Math.pow(2, context_numBits);\n            context_numBits++;\n          }\n\n          delete context_dictionaryToCreate[context_w];\n        } else {\n          value = context_dictionary[context_w];\n\n          for (i = 0; i < context_numBits; i++) {\n            context_data_val = context_data_val << 1 | value & 1;\n\n            if (context_data_position == bitsPerChar - 1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n\n            value = value >> 1;\n          }\n        }\n\n        context_enlargeIn--;\n\n        if (context_enlargeIn == 0) {\n          context_enlargeIn = Math.pow(2, context_numBits);\n          context_numBits++;\n        }\n      } // Mark the end of the stream\n\n\n      value = 2;\n\n      for (i = 0; i < context_numBits; i++) {\n        context_data_val = context_data_val << 1 | value & 1;\n\n        if (context_data_position == bitsPerChar - 1) {\n          context_data_position = 0;\n          context_data.push(getCharFromInt(context_data_val));\n          context_data_val = 0;\n        } else {\n          context_data_position++;\n        }\n\n        value = value >> 1;\n      } // Flush the last char\n\n\n      while (true) {\n        context_data_val = context_data_val << 1;\n\n        if (context_data_position == bitsPerChar - 1) {\n          context_data.push(getCharFromInt(context_data_val));\n          break;\n        } else context_data_position++;\n      }\n\n      return context_data.join('');\n    },\n    decompress: function (compressed) {\n      if (compressed == null) return \"\";\n      if (compressed == \"\") return null;\n      return LZString._decompress(compressed.length, 32768, function (index) {\n        return compressed.charCodeAt(index);\n      });\n    },\n    _decompress: function (length, resetValue, getNextValue) {\n      var dictionary = [],\n          next,\n          enlargeIn = 4,\n          dictSize = 4,\n          numBits = 3,\n          entry = \"\",\n          result = [],\n          i,\n          w,\n          bits,\n          resb,\n          maxpower,\n          power,\n          c,\n          data = {\n        val: getNextValue(0),\n        position: resetValue,\n        index: 1\n      };\n\n      for (i = 0; i < 3; i += 1) {\n        dictionary[i] = i;\n      }\n\n      bits = 0;\n      maxpower = Math.pow(2, 2);\n      power = 1;\n\n      while (power != maxpower) {\n        resb = data.val & data.position;\n        data.position >>= 1;\n\n        if (data.position == 0) {\n          data.position = resetValue;\n          data.val = getNextValue(data.index++);\n        }\n\n        bits |= (resb > 0 ? 1 : 0) * power;\n        power <<= 1;\n      }\n\n      switch (next = bits) {\n        case 0:\n          bits = 0;\n          maxpower = Math.pow(2, 8);\n          power = 1;\n\n          while (power != maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n\n            bits |= (resb > 0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n\n          c = f(bits);\n          break;\n\n        case 1:\n          bits = 0;\n          maxpower = Math.pow(2, 16);\n          power = 1;\n\n          while (power != maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n\n            bits |= (resb > 0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n\n          c = f(bits);\n          break;\n\n        case 2:\n          return \"\";\n      }\n\n      dictionary[3] = c;\n      w = c;\n      result.push(c);\n\n      while (true) {\n        if (data.index > length) {\n          return \"\";\n        }\n\n        bits = 0;\n        maxpower = Math.pow(2, numBits);\n        power = 1;\n\n        while (power != maxpower) {\n          resb = data.val & data.position;\n          data.position >>= 1;\n\n          if (data.position == 0) {\n            data.position = resetValue;\n            data.val = getNextValue(data.index++);\n          }\n\n          bits |= (resb > 0 ? 1 : 0) * power;\n          power <<= 1;\n        }\n\n        switch (c = bits) {\n          case 0:\n            bits = 0;\n            maxpower = Math.pow(2, 8);\n            power = 1;\n\n            while (power != maxpower) {\n              resb = data.val & data.position;\n              data.position >>= 1;\n\n              if (data.position == 0) {\n                data.position = resetValue;\n                data.val = getNextValue(data.index++);\n              }\n\n              bits |= (resb > 0 ? 1 : 0) * power;\n              power <<= 1;\n            }\n\n            dictionary[dictSize++] = f(bits);\n            c = dictSize - 1;\n            enlargeIn--;\n            break;\n\n          case 1:\n            bits = 0;\n            maxpower = Math.pow(2, 16);\n            power = 1;\n\n            while (power != maxpower) {\n              resb = data.val & data.position;\n              data.position >>= 1;\n\n              if (data.position == 0) {\n                data.position = resetValue;\n                data.val = getNextValue(data.index++);\n              }\n\n              bits |= (resb > 0 ? 1 : 0) * power;\n              power <<= 1;\n            }\n\n            dictionary[dictSize++] = f(bits);\n            c = dictSize - 1;\n            enlargeIn--;\n            break;\n\n          case 2:\n            return result.join('');\n        }\n\n        if (enlargeIn == 0) {\n          enlargeIn = Math.pow(2, numBits);\n          numBits++;\n        }\n\n        if (dictionary[c]) {\n          entry = dictionary[c];\n        } else {\n          if (c === dictSize) {\n            entry = w + w.charAt(0);\n          } else {\n            return null;\n          }\n        }\n\n        result.push(entry); // Add w+entry[0] to the dictionary.\n\n        dictionary[dictSize++] = w + entry.charAt(0);\n        enlargeIn--;\n        w = entry;\n\n        if (enlargeIn == 0) {\n          enlargeIn = Math.pow(2, numBits);\n          numBits++;\n        }\n      }\n    }\n  };\n  return LZString;\n}();\n\nif (typeof define === 'function' && define.amd) {\n  define(function () {\n    return LZString;\n  });\n} else if (typeof module !== 'undefined' && module != null) {\n  module.exports = LZString;\n}","map":{"version":3,"sources":["/Users/jane/Documents/Курс Front-end/HW8/myproject/node_modules/lz-string/libs/lz-string.js"],"names":["LZString","f","String","fromCharCode","keyStrBase64","keyStrUriSafe","baseReverseDic","getBaseValue","alphabet","character","i","length","charAt","compressToBase64","input","res","_compress","a","decompressFromBase64","_decompress","index","compressToUTF16","decompressFromUTF16","compressed","charCodeAt","compressToUint8Array","uncompressed","compress","buf","Uint8Array","TotalLen","current_value","decompressFromUint8Array","undefined","decompress","Array","result","forEach","c","push","join","compressToEncodedURIComponent","decompressFromEncodedURIComponent","replace","bitsPerChar","getCharFromInt","value","context_dictionary","context_dictionaryToCreate","context_c","context_wc","context_w","context_enlargeIn","context_dictSize","context_numBits","context_data","context_data_val","context_data_position","ii","Object","prototype","hasOwnProperty","call","Math","pow","resetValue","getNextValue","dictionary","next","enlargeIn","dictSize","numBits","entry","w","bits","resb","maxpower","power","data","val","position","define","amd","module","exports"],"mappings":"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","sourcesContent":["// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>\n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.4\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n  if (!baseReverseDic[alphabet]) {\n    baseReverseDic[alphabet] = {};\n    for (var i=0 ; i<alphabet.length ; i++) {\n      baseReverseDic[alphabet][alphabet.charAt(i)] = i;\n    }\n  }\n  return baseReverseDic[alphabet][character];\n}\n\nvar LZString = {\n  compressToBase64 : function (input) {\n    if (input == null) return \"\";\n    var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});\n    switch (res.length % 4) { // To produce valid Base64\n    default: // When could this happen ?\n    case 0 : return res;\n    case 1 : return res+\"===\";\n    case 2 : return res+\"==\";\n    case 3 : return res+\"=\";\n    }\n  },\n\n  decompressFromBase64 : function (input) {\n    if (input == null) return \"\";\n    if (input == \"\") return null;\n    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });\n  },\n\n  compressToUTF16 : function (input) {\n    if (input == null) return \"\";\n    return LZString._compress(input, 15, function(a){return f(a+32);}) + \" \";\n  },\n\n  decompressFromUTF16: function (compressed) {\n    if (compressed == null) return \"\";\n    if (compressed == \"\") return null;\n    return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });\n  },\n\n  //compress into uint8array (UCS-2 big endian format)\n  compressToUint8Array: function (uncompressed) {\n    var compressed = LZString.compress(uncompressed);\n    var buf=new Uint8Array(compressed.length*2); // 2 bytes per character\n\n    for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {\n      var current_value = compressed.charCodeAt(i);\n      buf[i*2] = current_value >>> 8;\n      buf[i*2+1] = current_value % 256;\n    }\n    return buf;\n  },\n\n  //decompress from uint8array (UCS-2 big endian format)\n  decompressFromUint8Array:function (compressed) {\n    if (compressed===null || compressed===undefined){\n        return LZString.decompress(compressed);\n    } else {\n        var buf=new Array(compressed.length/2); // 2 bytes per character\n        for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {\n          buf[i]=compressed[i*2]*256+compressed[i*2+1];\n        }\n\n        var result = [];\n        buf.forEach(function (c) {\n          result.push(f(c));\n        });\n        return LZString.decompress(result.join(''));\n\n    }\n\n  },\n\n\n  //compress into a string that is already URI encoded\n  compressToEncodedURIComponent: function (input) {\n    if (input == null) return \"\";\n    return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});\n  },\n\n  //decompress from an output of compressToEncodedURIComponent\n  decompressFromEncodedURIComponent:function (input) {\n    if (input == null) return \"\";\n    if (input == \"\") return null;\n    input = input.replace(/ /g, \"+\");\n    return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });\n  },\n\n  compress: function (uncompressed) {\n    return LZString._compress(uncompressed, 16, function(a){return f(a);});\n  },\n  _compress: function (uncompressed, bitsPerChar, getCharFromInt) {\n    if (uncompressed == null) return \"\";\n    var i, value,\n        context_dictionary= {},\n        context_dictionaryToCreate= {},\n        context_c=\"\",\n        context_wc=\"\",\n        context_w=\"\",\n        context_enlargeIn= 2, // Compensate for the first entry which should not count\n        context_dictSize= 3,\n        context_numBits= 2,\n        context_data=[],\n        context_data_val=0,\n        context_data_position=0,\n        ii;\n\n    for (ii = 0; ii < uncompressed.length; ii += 1) {\n      context_c = uncompressed.charAt(ii);\n      if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {\n        context_dictionary[context_c] = context_dictSize++;\n        context_dictionaryToCreate[context_c] = true;\n      }\n\n      context_wc = context_w + context_c;\n      if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {\n        context_w = context_wc;\n      } else {\n        if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n          if (context_w.charCodeAt(0)<256) {\n            for (i=0 ; i<context_numBits ; i++) {\n              context_data_val = (context_data_val << 1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n            }\n            value = context_w.charCodeAt(0);\n            for (i=0 ; i<8 ; i++) {\n              context_data_val = (context_data_val << 1) | (value&1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = value >> 1;\n            }\n          } else {\n            value = 1;\n            for (i=0 ; i<context_numBits ; i++) {\n              context_data_val = (context_data_val << 1) | value;\n              if (context_data_position ==bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = 0;\n            }\n            value = context_w.charCodeAt(0);\n            for (i=0 ; i<16 ; i++) {\n              context_data_val = (context_data_val << 1) | (value&1);\n              if (context_data_position == bitsPerChar-1) {\n                context_data_position = 0;\n                context_data.push(getCharFromInt(context_data_val));\n                context_data_val = 0;\n              } else {\n                context_data_position++;\n              }\n              value = value >> 1;\n            }\n          }\n          context_enlargeIn--;\n          if (context_enlargeIn == 0) {\n            context_enlargeIn = Math.pow(2, context_numBits);\n            context_numBits++;\n          }\n          delete context_dictionaryToCreate[context_w];\n        } else {\n          value = context_dictionary[context_w];\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n\n\n        }\n        context_enlargeIn--;\n        if (context_enlargeIn == 0) {\n          context_enlargeIn = Math.pow(2, context_numBits);\n          context_numBits++;\n        }\n        // Add wc to the dictionary.\n        context_dictionary[context_wc] = context_dictSize++;\n        context_w = String(context_c);\n      }\n    }\n\n    // Output the code for w.\n    if (context_w !== \"\") {\n      if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n        if (context_w.charCodeAt(0)<256) {\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n          }\n          value = context_w.charCodeAt(0);\n          for (i=0 ; i<8 ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n        } else {\n          value = 1;\n          for (i=0 ; i<context_numBits ; i++) {\n            context_data_val = (context_data_val << 1) | value;\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = 0;\n          }\n          value = context_w.charCodeAt(0);\n          for (i=0 ; i<16 ; i++) {\n            context_data_val = (context_data_val << 1) | (value&1);\n            if (context_data_position == bitsPerChar-1) {\n              context_data_position = 0;\n              context_data.push(getCharFromInt(context_data_val));\n              context_data_val = 0;\n            } else {\n              context_data_position++;\n            }\n            value = value >> 1;\n          }\n        }\n        context_enlargeIn--;\n        if (context_enlargeIn == 0) {\n          context_enlargeIn = Math.pow(2, context_numBits);\n          context_numBits++;\n        }\n        delete context_dictionaryToCreate[context_w];\n      } else {\n        value = context_dictionary[context_w];\n        for (i=0 ; i<context_numBits ; i++) {\n          context_data_val = (context_data_val << 1) | (value&1);\n          if (context_data_position == bitsPerChar-1) {\n            context_data_position = 0;\n            context_data.push(getCharFromInt(context_data_val));\n            context_data_val = 0;\n          } else {\n            context_data_position++;\n          }\n          value = value >> 1;\n        }\n\n\n      }\n      context_enlargeIn--;\n      if (context_enlargeIn == 0) {\n        context_enlargeIn = Math.pow(2, context_numBits);\n        context_numBits++;\n      }\n    }\n\n    // Mark the end of the stream\n    value = 2;\n    for (i=0 ; i<context_numBits ; i++) {\n      context_data_val = (context_data_val << 1) | (value&1);\n      if (context_data_position == bitsPerChar-1) {\n        context_data_position = 0;\n        context_data.push(getCharFromInt(context_data_val));\n        context_data_val = 0;\n      } else {\n        context_data_position++;\n      }\n      value = value >> 1;\n    }\n\n    // Flush the last char\n    while (true) {\n      context_data_val = (context_data_val << 1);\n      if (context_data_position == bitsPerChar-1) {\n        context_data.push(getCharFromInt(context_data_val));\n        break;\n      }\n      else context_data_position++;\n    }\n    return context_data.join('');\n  },\n\n  decompress: function (compressed) {\n    if (compressed == null) return \"\";\n    if (compressed == \"\") return null;\n    return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n  },\n\n  _decompress: function (length, resetValue, getNextValue) {\n    var dictionary = [],\n        next,\n        enlargeIn = 4,\n        dictSize = 4,\n        numBits = 3,\n        entry = \"\",\n        result = [],\n        i,\n        w,\n        bits, resb, maxpower, power,\n        c,\n        data = {val:getNextValue(0), position:resetValue, index:1};\n\n    for (i = 0; i < 3; i += 1) {\n      dictionary[i] = i;\n    }\n\n    bits = 0;\n    maxpower = Math.pow(2,2);\n    power=1;\n    while (power!=maxpower) {\n      resb = data.val & data.position;\n      data.position >>= 1;\n      if (data.position == 0) {\n        data.position = resetValue;\n        data.val = getNextValue(data.index++);\n      }\n      bits |= (resb>0 ? 1 : 0) * power;\n      power <<= 1;\n    }\n\n    switch (next = bits) {\n      case 0:\n          bits = 0;\n          maxpower = Math.pow(2,8);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n        c = f(bits);\n        break;\n      case 1:\n          bits = 0;\n          maxpower = Math.pow(2,16);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n        c = f(bits);\n        break;\n      case 2:\n        return \"\";\n    }\n    dictionary[3] = c;\n    w = c;\n    result.push(c);\n    while (true) {\n      if (data.index > length) {\n        return \"\";\n      }\n\n      bits = 0;\n      maxpower = Math.pow(2,numBits);\n      power=1;\n      while (power!=maxpower) {\n        resb = data.val & data.position;\n        data.position >>= 1;\n        if (data.position == 0) {\n          data.position = resetValue;\n          data.val = getNextValue(data.index++);\n        }\n        bits |= (resb>0 ? 1 : 0) * power;\n        power <<= 1;\n      }\n\n      switch (c = bits) {\n        case 0:\n          bits = 0;\n          maxpower = Math.pow(2,8);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n\n          dictionary[dictSize++] = f(bits);\n          c = dictSize-1;\n          enlargeIn--;\n          break;\n        case 1:\n          bits = 0;\n          maxpower = Math.pow(2,16);\n          power=1;\n          while (power!=maxpower) {\n            resb = data.val & data.position;\n            data.position >>= 1;\n            if (data.position == 0) {\n              data.position = resetValue;\n              data.val = getNextValue(data.index++);\n            }\n            bits |= (resb>0 ? 1 : 0) * power;\n            power <<= 1;\n          }\n          dictionary[dictSize++] = f(bits);\n          c = dictSize-1;\n          enlargeIn--;\n          break;\n        case 2:\n          return result.join('');\n      }\n\n      if (enlargeIn == 0) {\n        enlargeIn = Math.pow(2, numBits);\n        numBits++;\n      }\n\n      if (dictionary[c]) {\n        entry = dictionary[c];\n      } else {\n        if (c === dictSize) {\n          entry = w + w.charAt(0);\n        } else {\n          return null;\n        }\n      }\n      result.push(entry);\n\n      // Add w+entry[0] to the dictionary.\n      dictionary[dictSize++] = w + entry.charAt(0);\n      enlargeIn--;\n\n      w = entry;\n\n      if (enlargeIn == 0) {\n        enlargeIn = Math.pow(2, numBits);\n        numBits++;\n      }\n\n    }\n  }\n};\n  return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n  define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n  module.exports = LZString\n}\n"]},"metadata":{},"sourceType":"script"}