(function(){
  var iframe = document.createElement("iframe"),
      div = document.createElement("div"),
      hasReadyState = "readyState" in iframe,
      flScript = document.createElement('script'),
      scriptLoaded = false, iframeLoaded = false,
      iframeDoc;

  iframe.style.display = "block";
  iframe.style.border = "0px solid transparent";
  iframe.id = "factlink-iframe";

  flScript.src = FactlinkConfig.lib + (FactlinkConfig.srcPath || "/factlink.core.min.js");
  flScript.onload = flScript.onreadystatechange = function () {
    if ((flScript.readyState && flScript.readyState !== "complete" && flScript.readyState !== "loaded") || scriptLoaded) {
      return false;
    }
    flScript.onload = flScript.onreadystatechange = null;
    scriptLoaded = true;

    window.FACTLINK.on = function() {
      iframe.contentWindow.Factlink.on.apply(iframe.contentWindow.Factlink, arguments);
    };

    window.FACTLINK.off = function() {
      iframe.contentWindow.Factlink.off.apply(iframe.contentWindow.Factlink, arguments);
    };

    if ( window.jQuery ) {
      jQuery(window).trigger('factlink.libraryLoaded');
    }
  };

  if ( window.FACTLINK === undefined ) { window.FACTLINK = {}; }

  window.FACTLINK.iframeLoaded = function () {
    iframe.contentWindow.document.head.appendChild(flScript);
  };

  div.id = "fl";

  document.body.appendChild(div);
  div.insertBefore(iframe, div.firstChild);

  iframeDoc = iframe.contentWindow.document;

  iframeDoc.open();
  iframeDoc.write("<!DOCTYPE html><html><head><script>" +
                    "window.FactlinkConfig = " + JSON.stringify(FactlinkConfig) + ";" +
                  " window.parent.FACTLINK.iframeLoaded();</script></head><body></body></html>");
  iframeDoc.close();
}());

@@ -5,16 +5,990 @@
 ction()%7B
+%0A%0A  /*%0A   * Temporary workaround for old bookmarklet users%0A%0A                     .-%22%22%22-.%0A                   _/-=-.   %5C%0A                  (_%7Ca a/   %7C_%0A                   / %22  %5C   ,_)%0A              _    %5C%60=' /__/%0A             / %5C_  .;--'  %60-.%0A             %5C___)//      ,  %5C%0A              %5C %5C/;        %5C  %5C%0A               %5C_.%7C         %7C %7C%0A                .-%5C '     _/_/%0A              .'  _;.    (_  %5C%0A             /  .'   %60%5C   %5C%5C_/%0A            %7C_ /       %7C  %7C%5C%5C%0A           /  _)       /  / %7C%7C%0A      jgs /  /       _/  /  //%0A          %5C_/       ( %60-/  %7C%7C%0A                    /  /   %5C%5C .-.%0A                    %5C_/     %5C'-'/%0A                             %60%22%60%0A%0A   */%0A  if (FactlinkConfig.lib.substr(-4, FactlinkConfig.lib.length) === %22/lib%22) %7B%0A    FactlinkConfig.lib += %22/dist%22;%0A  %7D%0A  if (FactlinkConfig.srcPath.substr(0, 5) === %22/dist%22) %7B%0A    FactlinkConfig.srcPath = FactlinkConfig.srcPath.substr(5, FactlinkConfig.srcPath.length);%0A  %7D%0A  // end of old bookmarklet users patches.%0A%0A
 %0A  var i

Patch for old bookmarklet users