text: (function (w) {
      "use strict";
      function findBest(atobNative) {
          // normal window
          if ('function' === typeof atobNative) {
              return atobNative;
          }
          // browserify (web worker)
          if ('function' === typeof Buffer) {
              return function atobBrowserify(a) {
                  //!! Deliberately using an API that's deprecated in node.js because
                  //!! this file is for browsers and we expect them to cope with it.
                  //!! Discussion: github.com/node-browser-compat/atob/pull/9
                  return new Buffer(a, 'base64').toString('binary');
              };
          }
          // ios web worker with base64js
          if ('object' === typeof w.base64js) {
              // bufferToBinaryString
              // https://git.coolaj86.com/coolaj86/unibabel.js/blob/master/index.js#L50
              return function atobWebWorker_iOS(a) {
                  var buf = w.base64js.b64ToByteArray(a);
                  return Array.prototype.map.call(buf, function (ch) {
                      return String.fromCharCode(ch);
                  }).join('');
              };
          }
          return function () {
              // ios web worker without base64js
              throw new Error("You're probably in an old browser or an iOS webworker." +
                  " It might help to include beatgammit's base64-js.");
          };
      }
      var atobBest = findBest(w.atob);
      w.atob = atobBest;
      if ((typeof module === 'object') && module && module.exports) {
          module.exports = atobBest;
      }
  }(window));
  