/*!@source http://purl.eligrey.com/github/canvas-toBlob.js/blob/master/canvas-toBlob.js*/(function(view){"use strict";var Uint8Array=view.Uint8Array,HTMLCanvasElement=view.HTMLCanvasElement,canvas_proto=HTMLCanvasElement&&HTMLCanvasElement.prototype,is_base64_regex=/\s*;\s*base64\s*(?:;|$)/i,to_data_url="toDataURL",base64_ranks,decode_base64=function(base64){var len=base64.length,buffer=new Uint8Array(len/4*3|0),i=0,outptr=0,last=[0,0],state=0,save=0,rank,code,undef;while(len--){code=base64.charCodeAt(i++);rank=base64_ranks[code-43];if(rank!==255&&rank!==undef){last[1]=last[0];last[0]=code;save=(save<<6)|rank;state++;if(state===4){buffer[outptr++]=save>>>16;if(last[1]!==61){buffer[outptr++]=save>>>8;} if(last[0]!==61){buffer[outptr++]=save;} state=0;}}} return buffer;};if(Uint8Array){base64_ranks=new Uint8Array([62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,0,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]);} if(HTMLCanvasElement&&!canvas_proto.toBlob){canvas_proto.toBlob=function(callback,type){if(!type){type="image/png";}if(this.mozGetAsFile){callback(this.mozGetAsFile("canvas",type));return;}if(this.msToBlob&&/^\s*image\/png\s*(?:$|;)/i.test(type)){callback(this.msToBlob());return;} var args=Array.prototype.slice.call(arguments,1),dataURI=this[to_data_url].apply(this,args),header_end=dataURI.indexOf(","),data=dataURI.substring(header_end+1),is_base64=is_base64_regex.test(dataURI.substring(0,header_end)),blob;if(Blob.fake){blob=new Blob if(is_base64){blob.encoding="base64";}else{blob.encoding="URI";} blob.data=data;blob.size=data.length;}else if(Uint8Array){if(is_base64){blob=new Blob([decode_base64(data)],{type:type});}else{blob=new Blob([decodeURIComponent(data)],{type:type});}} callback(blob);};if(canvas_proto.toDataURLHD){canvas_proto.toBlobHD=function(){to_data_url="toDataURLHD";var blob=this.toBlob();to_data_url="toDataURL";return blob;}}else{canvas_proto.toBlobHD=canvas_proto.toBlob;}}}(typeof self!=="undefined"&&self||typeof window!=="undefined"&&window||this.content||this));