diff --git a/dist/qiniu.js b/dist/qiniu.js
index ede1f6a9..6f0ecdf1 100644
--- a/dist/qiniu.js
+++ b/dist/qiniu.js
@@ -1,12 +1,12 @@
/*!
- * qiniu-js-sdk v1.0.17-beta
+ * qiniu-js-sdk v1.0.17.1
*
* Copyright 2015 by Qiniu
* Released under GPL V2 License.
*
* GitHub: http://github.com/qiniu/js-sdk
*
- * Date: 2016-9-30
+ * Date: 2016-10-11
*/
/*global plupload ,mOxie*/
@@ -595,14 +595,25 @@ function QiniuJsSDK() {
return result;
};
- var getUpHosts = function(uptoken) {
+ var getPutPolicy = function (uptoken) {
var segments = uptoken.split(":");
var ak = segments[0];
var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2]));
+ putPolicy.ak = ak;
+ if (putPolicy.scope.indexOf(":") >= 0) {
+ putPolicy.bucket = putPolicy.scope.split(":")[0];
+ putPolicy.key = putPolicy.scope.split(":")[1];
+ } else {
+ putPolicy.bucket = putPolicy.scope;
+ }
+ return putPolicy;
+ };
+
+ var getUpHosts = function(uptoken) {
+ var putPolicy = getPutPolicy(uptoken);
// var uphosts_url = "//uc.qbox.me/v1/query?ak="+ak+"&bucket="+putPolicy.scope;
// IE 9- is not support protocal relative url
- var uphosts_url = window.location.protocol + "//uc.qbox.me/v1/query?ak="+ak+"&bucket="+putPolicy.scope;
- logger.debug("ak: ", ak);
+ var uphosts_url = window.location.protocol + "//uc.qbox.me/v1/query?ak=" + putPolicy.ak + "&bucket=" + putPolicy.bucket;
logger.debug("putPolicy: ", putPolicy);
logger.debug("get uphosts from: ", uphosts_url);
var ie = that.detectIEVersion();
@@ -718,7 +729,15 @@ function QiniuJsSDK() {
// get file key according with the user passed options
var getFileKey = function(up, file, func) {
- // TODO: save_key can read from scope of token
+ // WARNING
+ // When you set the key in putPolicy by "scope": "bucket:key"
+ // You should understand the risk of override a file in the bucket
+ // So the code below that automatically get key from uptoken has been commented
+ // var putPolicy = getPutPolicy(that.token)
+ // if (putPolicy.key) {
+ // logger.debug("key is defined in putPolicy.scope: ", putPolicy.key)
+ // return putPolicy.key
+ // }
var key = '',
unique_names = false;
if (!op.save_key) {
@@ -923,7 +942,6 @@ function QiniuJsSDK() {
}
}
-
up.setOption({
'url': qiniuUploadUrl,
'multipart': true,
diff --git a/dist/qiniu.min.js b/dist/qiniu.min.js
index 86887757..a8177442 100644
--- a/dist/qiniu.min.js
+++ b/dist/qiniu.min.js
@@ -1,3 +1,3 @@
-/*! qiniu-js v1.0.17-beta | Copyright 2015 by Qiniu */
-!function(global){function createCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="; expires="+d.toGMTString();document.cookie=a+"="+b+e+"; path=/"}function readCookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0,e=c.length;e>d;d++){var f=c[d];while(" "===f.charAt(0))f=f.substring(1,f.length);if(0===f.indexOf(b))return f.substring(b.length,f.length)}return null}window.localStorage||(window.localStorage={setItem:function(a,b){createCookie(a,b,30)},getItem:function(a){return readCookie(a)},removeItem:function(a){createCookie(a,"",-1)}});function QiniuJsSDK(){var that=this;this.detectIEVersion=function(){var a=4,b=document.createElement("div"),c=b.getElementsByTagName("i");while(b.innerHTML="",c[0])a++;return a>4?a:!1};var logger={MUTE:0,FATA:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,TRACE:6,level:0};function log(a,b){var c="[qiniu-js-sdk]["+a+"]";var d=c;for(var e=0;e"+d+"
")}function makeLogFunc(a){var b=a.toLowerCase();logger[b]=function(){if(window.console&&window.console.log&&logger.level>=logger[a]){var c=Array.prototype.slice.call(arguments);log(b,c)}}}for(var property in logger)logger.hasOwnProperty(property)&&"number"==typeof logger[property]&&!logger.hasOwnProperty(property.toLowerCase())&&makeLogFunc(property);var qiniuUploadUrl;qiniuUploadUrl="https:"===window.location.protocol?"https://up.qbox.me":"http://upload.qiniu.com";var qiniuUploadUrls=["http://upload.qiniu.com","http://up.qiniu.com"];var qiniuUpHosts={http:["http://upload.qiniu.com","http://up.qiniu.com"],https:["https://up.qbox.me"]};var changeUrlTimes=0;this.resetUploadUrl=function(){var a="https:"===window.location.protocol?qiniuUpHosts.https:qiniuUpHosts.http;var b=changeUrlTimes%a.length;qiniuUploadUrl=a[b],changeUrlTimes++,logger.debug("resetUploadUrl: "+qiniuUploadUrl)},this.isImage=function(a){return a=a.split(/[?#]/)[0],/\.(png|jpg|jpeg|gif|bmp)$/i.test(a)},this.getFileExtension=function(a){var b=a.split(".");var c;return c=1===b.length||""===b[0]&&2===b.length?"":b.pop().toLowerCase()},this.utf8_encode=function(a){if(null===a||"undefined"==typeof a)return"";var b=a+"";var c="",d,e,f=0;d=e=0,f=b.length;for(var g=0;f>g;g++){var h=b.charCodeAt(g);var i=null;if(128>h)e++;else if(h>127&&2048>h)i=String.fromCharCode(h>>6|192,63&h|128);else if(63488&h^!0)i=String.fromCharCode(h>>12|224,h>>6&63|128,63&h|128);else{if(64512&h^!0)throw new RangeError("Unmatched trail surrogate at "+g);var j=b.charCodeAt(++g);if(64512&j^!0)throw new RangeError("Unmatched lead surrogate at "+(g-1));h=((1023&h)<<10)+(1023&j)+65536,i=String.fromCharCode(h>>18|240,h>>12&63|128,h>>6&63|128,63&h|128)}null!==i&&(e>d&&(c+=b.slice(d,e)),c+=i,d=e=g+1)}return e>d&&(c+=b.slice(d,f)),c},this.base64_decode=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,d,e,f,g,h,i,j,k=0,l=0,m="",n=[];if(!a)return a;a+="";do f=b.indexOf(a.charAt(k++)),g=b.indexOf(a.charAt(k++)),h=b.indexOf(a.charAt(k++)),i=b.indexOf(a.charAt(k++)),j=f<<18|g<<12|h<<6|i,c=j>>16&255,d=j>>8&255,e=255&j,64===h?n[l++]=String.fromCharCode(c):64===i?n[l++]=String.fromCharCode(c,d):n[l++]=String.fromCharCode(c,d,e);while(k>18&63,g=j>>12&63,h=j>>6&63,i=63&j,n[l++]=b.charAt(f)+b.charAt(g)+b.charAt(h)+b.charAt(i);while(kd;d++)b.push(that.stringifyJSON(a[d]));return"["+b.join(",")+"]"}if(null===a)return"null";var e=[];for(var f in a)a.hasOwnProperty(f)&&e.push(that.stringifyJSON(f)+":"+that.stringifyJSON(a[f]));return"{"+e.join(",")+"}";case"number":return a;case!1:return a;case"boolean":return a}},this.trim=function(a){return null===a?"":a.replace(/^\s+|\s+$/g,"")},this.uploader=function(a){var b=function(){var b=that.detectIEVersion();var c,d,e;var f="Safari"===mOxie.Env.browser&&mOxie.Env.version<=5&&"Windows"===mOxie.Env.os&&"7"===mOxie.Env.osVersion||"Safari"===mOxie.Env.browser&&"iOS"===mOxie.Env.os&&"7"===mOxie.Env.osVersion;b&&9>b&&a.chunk_size&&a.runtimes.indexOf("flash")>=0?a.chunk_size=0:f?a.chunk_size=0:(c=20,d=4<d&&(a.chunk_size=d))};var c=function(a){var b=[];for(var c=0;c=h?(i=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):i=that.createAjax(),i.open("GET",g,!0);var j=function(){if(logger.debug("ajax.readyState: ",i.readyState),4===i.readyState)if(logger.debug("ajax.status: ",i.status),i.status<400){var a=that.parseJSON(i.responseText);qiniuUpHosts.http=c(a.http.up),qiniuUpHosts.https=c(a.https.up),logger.debug("get new uphosts: ",qiniuUpHosts),that.resetUploadUrl()}else logger.error("get uphosts error: ",i.responseText)};h&&9>=h?i.bind("readystatechange",j):i.onreadystatechange=j,i.send()};var e=function(a){return!that.token||that.tokenInfo.isExpired()?f(a):that.token};var f=function(b){if(a.uptoken)that.token=a.uptoken;else if(a.uptoken_url){logger.debug("get uptoken from: ",that.uptoken_url);var c=that.createAjax();if(c.open("GET",that.uptoken_url,!1),c.setRequestHeader("If-Modified-Since","0"),c.send(),200===c.status){var e=that.parseJSON(c.responseText);that.token=e.uptoken;var f=that.token.split(":");var g=that.parseJSON(that.URLSafeBase64Decode(f[2]));that.tokenMap||(that.tokenMap={});var h=function(a){return Math.ceil(a.getTime()/1e3)};var i=h(new Date(c.getResponseHeader("date")));var j=h(new Date);that.tokenInfo={serverDelay:j-i,deadline:g.deadline,isExpired:function(){var a=this.deadline-h(new Date)+this.serverDelay;return 600>a}},logger.debug("get new uptoken: ",that.token),logger.debug("get token info: ",that.tokenInfo)}else logger.error("get uptoken error: ",c.responseText)}else a.uptoken_func?(logger.debug("get uptoken from uptoken_func"),that.token=a.uptoken_func(b),logger.debug("get new uptoken: ",that.token)):logger.error("one of [uptoken, uptoken_url, uptoken_func] settings in options is required!");return that.token&&d(that.token),that.token};var g=function(b,c,d){var e="",f=!1;if(!a.save_key)if(f=b.getOption&&b.getOption("unique_names"),f=f||b.settings&&b.settings.unique_names){var g=that.getFileExtension(c.name);e=g?c.id+"."+g:c.id}else e="function"==typeof d?d(b,c):c.name;return e};if(a.log_level&&(logger.level=a.log_level),!a.domain)throw"domain setting in options is required!";if(!a.browse_button)throw"browse_button setting in options is required!";if(!a.uptoken&&!a.uptoken_url&&!a.uptoken_func)throw"one of [uptoken, uptoken_url, uptoken_func] settings in options is required!";logger.debug("init uploader start"),logger.debug("environment: ",mOxie.Env),logger.debug("userAgent: ",navigator.userAgent);var h={};var i=a.init&&a.init.Error;var j=a.init&&a.init.FileUploaded;a.init.Error=function(){},a.init.FileUploaded=function(){},that.uptoken_url=a.uptoken_url,that.token="",that.key_handler="function"==typeof a.init.Key?a.init.Key:"",this.domain=a.domain;var k="";var l={isResumeUpload:!1,resumeFilesize:0,startTime:"",currentTime:""};b(),logger.debug("invoke reset_chunk_size()"),logger.debug("op.chunk_size: ",a.chunk_size);var m={url:qiniuUploadUrl,multipart_params:{token:""}};var n=that.detectIEVersion();n&&9>=n&&(m.multipart_params.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),plupload.extend(h,a,m),logger.debug("option: ",h);var o=new plupload.Uploader(h);logger.debug("new plupload.Uploader(option)"),o.bind("Init",function(b,c){logger.debug("Init event activated"),a.get_new_uptoken||f(null)}),logger.debug("bind Init event"),o.bind("FilesAdded",function(a,b){logger.debug("FilesAdded event activated");var c=a.getOption&&a.getOption("auto_start");c=c||a.settings&&a.settings.auto_start,logger.debug("auto_start: ",c),logger.debug("files: ",b);var d=function(){return"ios"===mOxie.Env.OS.toLowerCase()?!0:!1};if(d())for(var e=0;e=f&&(e.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),logger.debug("directUpload multipart_params_obj: ",e);var i=a.x_vars;if(void 0!==i&&"object"==typeof i)for(var j in i)i.hasOwnProperty(j)&&("function"==typeof i[j]?e["x:"+j]=i[j](b,c):"object"!=typeof i[j]&&(e["x:"+j]=i[j]));b.setOption({url:qiniuUploadUrl,multipart:!0,chunk_size:h()?a.max_file_size:void 0,multipart_params:e})};var h=function(){var a=navigator.userAgent.toLowerCase();return(a.match(/MicroMessenger/i)||"QQBrowser"===mOxie.Env.browser||a.match(/V1_AND_SQ/i))&&"android"===mOxie.Env.OS.toLowerCase()?!0:!1};var i=b.getOption&&b.getOption("chunk_size");if(i=i||b.settings&&b.settings.chunk_size,logger.debug("uploader.runtime: ",o.runtime),logger.debug("chunk_size: ",i),"html5"!==o.runtime&&"flash"!==o.runtime||!i)logger.debug("directUpload because uploader.runtime !== 'html5' || uploader.runtime !== 'flash' || !chunk_size"),d(b,c,that.key_handler);else if(c.sizen-p&&100!==j.percent&&c.size===j.total?(c.percent=j.percent,c.loaded=j.offset,k=j.ctx,l.isResumeUpload=!0,l.resumeFilesize=j.offset,j.offset+m>c.size&&(m=c.size-j.offset)):localStorage.removeItem(c.name)}l.startTime=(new Date).getTime();var r={};var s=that.detectIEVersion();s&&9>=s&&(r.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),b.setOption({url:qiniuUploadUrl+"/mkblk/"+m,multipart:!1,chunk_size:i,required_features:"chunks",headers:{Authorization:"UpToken "+e(c)},multipart_params:r})}}),logger.debug("bind BeforeUpload event"),o.bind("UploadProgress",function(a,b){logger.trace("UploadProgress event activated"),l.currentTime=(new Date).getTime();var c=l.currentTime-l.startTime;var d=b.loaded||0;l.isResumeUpload&&(d=b.loaded-l.resumeFilesize),b.speed=(d/c*1e3).toFixed(0)||0}),logger.debug("bind UploadProgress event"),o.bind("ChunkUploaded",function(a,b,c){logger.debug("ChunkUploaded event activated"),logger.debug("file: ",b),logger.debug("info: ",c);var d=that.parseJSON(c.response);logger.debug("res: ",d),k=k?k+","+d.ctx:d.ctx;var f=c.total-c.offset;var g=a.getOption&&a.getOption("chunk_size");g=g||a.settings&&a.settings.chunk_size,g>f&&(a.setOption({url:qiniuUploadUrl+"/mkblk/"+f}),logger.debug("up.setOption url: ",qiniuUploadUrl+"/mkblk/"+f)),a.setOption({headers:{Authorization:"UpToken "+e(b)}}),localStorage.setItem(b.name,that.stringifyJSON({ctx:k,percent:b.percent,total:c.total,offset:c.offset,time:(new Date).getTime()}))}),logger.debug("bind ChunkUploaded event");var p=qiniuUploadUrls.length;var q=function(a){return p-->0?(setTimeout(function(){that.resetUploadUrl(),a.status=plupload.QUEUED,o.stop(),o.start()},0),!0):(p=qiniuUploadUrls.length,!1)};return o.bind("Error",function(a){return function(b,c){logger.error("Error event activated"),logger.error("err: ",c);var d="";var e=c.file;if(e){switch(c.code){case plupload.FAILED:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.FILE_SIZE_ERROR:var f=b.getOption&&b.getOption("max_file_size");f=f||b.settings&&b.settings.max_file_size,d="\u6d4f\u89c8\u5668\u6700\u5927\u53ef\u4e0a\u4f20"+f+"\u3002\u66f4\u5927\u6587\u4ef6\u8bf7\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\u3002";break;case plupload.FILE_EXTENSION_ERROR:d="\u6587\u4ef6\u9a8c\u8bc1\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002";break;case plupload.HTTP_ERROR:if(""===c.response){if(d=c.message||"\u672a\u77e5\u7f51\u7edc\u9519\u8bef\u3002",!q(e))return;break}var g=that.parseJSON(c.response);var h=g.error;switch(c.status){case 400:d="\u8bf7\u6c42\u62a5\u6587\u683c\u5f0f\u9519\u8bef\u3002";break;case 401:d="\u5ba2\u6237\u7aef\u8ba4\u8bc1\u6388\u6743\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 405:d="\u5ba2\u6237\u7aef\u8bf7\u6c42\u9519\u8bef\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 579:d="\u8d44\u6e90\u4e0a\u4f20\u6210\u529f\uff0c\u4f46\u56de\u8c03\u5931\u8d25\u3002";break;case 599:if(d="\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002",!q(e))return;break;case 614:d="\u6587\u4ef6\u5df2\u5b58\u5728\u3002";try{g=that.parseJSON(g.error),h=g.error||"file exists"}catch(i){h=g.error||"file exists"}break;case 631:d="\u6307\u5b9a\u7a7a\u95f4\u4e0d\u5b58\u5728\u3002";break;case 701:d="\u4e0a\u4f20\u6570\u636e\u5757\u6821\u9a8c\u51fa\u9519\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;default:if(d="\u672a\u77e5\u9519\u8bef\u3002",!q(e))return}d=d+"("+c.status+"\uff1a"+h+")";break;case plupload.SECURITY_ERROR:d="\u5b89\u5168\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002";break;case plupload.GENERIC_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.IO_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.INIT_ERROR:d="\u7f51\u7ad9\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002",o.destroy();break;default:if(d=c.message+c.details,!q(e))return}a&&a(b,c,d)}b.refresh()}}(i)),logger.debug("bind Error event"),o.bind("FileUploaded",function(b){return function(c,d,e){logger.debug("FileUploaded event activated"),logger.debug("file: ",d),logger.debug("info: ",e);var f=function(c,d,e){if(a.downtoken_url){var f=that.createAjax();f.open("POST",a.downtoken_url,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),f.onreadystatechange=function(){if(4===f.readyState)if(200===f.status){var a;try{a=that.parseJSON(f.responseText)}catch(g){throw"invalid json format"}var h={};plupload.extend(h,that.parseJSON(e),a),b&&b(c,d,that.stringifyJSON(h))}else o.trigger("Error",{status:f.status,response:f.responseText,file:d,code:plupload.HTTP_ERROR})},f.send("key="+that.parseJSON(e).key+"&domain="+a.domain)}else b&&b(c,d,e)};var h=that.parseJSON(e.response);if(k=k?k:h.ctx,logger.debug("ctx: ",k),k){var i="";logger.debug("save_key: ",a.save_key),a.save_key||(i=g(c,d,that.key_handler),i=i?"/key/"+that.URLSafeBase64Encode(i):"");var j="/fname/"+that.URLSafeBase64Encode(d.name);logger.debug("op.x_vars: ",a.x_vars);var l=a.x_vars,m="",n="";if(void 0!==l&&"object"==typeof l)for(var p in l)l.hasOwnProperty(p)&&("function"==typeof l[p]?m=that.URLSafeBase64Encode(l[p](c,d)):"object"!=typeof l[p]&&(m=that.URLSafeBase64Encode(l[p])),n+="/x:"+p+"/"+m);var q=qiniuUploadUrl+"/mkfile/"+d.size+i+j+n;var r=that.detectIEVersion();var s;r&&9>=r?(s=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):s=that.createAjax(),s.open("POST",q,!0),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8"),s.setRequestHeader("Authorization","UpToken "+that.token);var t=function(){if(logger.debug("ajax.readyState: ",s.readyState),4===s.readyState){localStorage.removeItem(d.name);var a;200===s.status?(a=s.responseText,logger.debug("mkfile is success: ",a),f(c,d,a)):(a={status:s.status,response:s.responseText,file:d,code:-200},logger.debug("mkfile is error: ",a),o.trigger("Error",a))}};r&&9>=r?s.bind("readystatechange",t):s.onreadystatechange=t,s.send(k),logger.debug("mkfile: ",q)}else f(c,d,e.response)}}(j)),logger.debug("bind FileUploaded event"),o.init(),logger.debug("invoke uploader.init()"),logger.debug("init uploader end"),o},this.getUrl=function(a){if(!a)return!1;a=encodeURI(a);var b=this.domain;return"/"!==b.slice(b.length-1)&&(b+="/"),b+a},this.imageView2=function(a,b){var c=a.mode||"",d=a.w||"",e=a.h||"",f=a.q||"",g=a.format||"";if(!c)return!1;if(!d&&!e)return!1;var h="imageView2/"+c;return h+=d?"/w/"+d:"",h+=e?"/h/"+e:"",h+=f?"/q/"+f:"",h+=g?"/format/"+g:"",b&&(h=this.getUrl(b)+"?"+h),h},this.imageMogr2=function(a,b){var c=a["auto-orient"]||"",d=a.thumbnail||"",e=a.strip||"",f=a.gravity||"",g=a.crop||"",h=a.quality||"",i=a.rotate||"",j=a.format||"",k=a.blur||"";var l="imageMogr2";return l+=c?"/auto-orient":"",l+=d?"/thumbnail/"+d:"",l+=e?"/strip":"",l+=f?"/gravity/"+f:"",l+=h?"/quality/"+h:"",l+=g?"/crop/"+g:"",l+=i?"/rotate/"+i:"",l+=j?"/format/"+j:"",l+=k?"/blur/"+k:"",b&&(l=this.getUrl(b)+"?"+l),l},this.watermark=function(a,b){var c=a.mode;if(!c)return!1;var d="watermark/"+c;if(1===c){var e=a.image||"";if(!e)return!1;d+=e?"/image/"+this.URLSafeBase64Encode(e):""}else{if(2!==c)return!1;var f=a.text?a.text:"",g=a.font?a.font:"",h=a.fontsize?a.fontsize:"",i=a.fill?a.fill:"";if(!f)return!1;d+=f?"/text/"+this.URLSafeBase64Encode(f):"",d+=g?"/font/"+this.URLSafeBase64Encode(g):"",d+=h?"/fontsize/"+h:"",d+=i?"/fill/"+this.URLSafeBase64Encode(i):""}var j=a.dissolve||"",k=a.gravity||"",l=a.dx||"",m=a.dy||"";return d+=j?"/dissolve/"+j:"",d+=k?"/gravity/"+k:"",d+=l?"/dx/"+l:"",d+=m?"/dy/"+m:"",b&&(d=this.getUrl(b)+"?"+d),d},this.imageInfo=function(a){if(!a)return!1;var b=this.getUrl(a)+"?imageInfo";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.exif=function(a){if(!a)return!1;var b=this.getUrl(a)+"?exif";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.get=function(a,b){return b&&a?"exif"===a?this.exif(b):"imageInfo"===a?this.imageInfo(b):!1:!1},this.pipeline=function(a,b){var c="[object Array]"===Object.prototype.toString.call(a);var d,e,f="";if(c){for(var g=0,h=a.length;h>g;g++){if(d=a[g],!d.fop)return!1;switch(d.fop){case"watermark":f+=this.watermark(d)+"|";break;case"imageView2":f+=this.imageView2(d)+"|";break;case"imageMogr2":f+=this.imageMogr2(d)+"|";break;default:e=!0}if(e)return!1}if(b){f=this.getUrl(b)+"?"+f;var i=f.length;"|"===f.slice(i-1)&&(f=f.slice(0,i-1))}return f}return!1}}var Qiniu=new QiniuJsSDK;global.Qiniu=Qiniu,global.QiniuJsSDK=QiniuJsSDK}(window);
+/*! qiniu-js v1.0.17.1 | Copyright 2015 by Qiniu */
+!function(global){function createCookie(a,b,c){var d=new Date;d.setTime(d.getTime()+24*c*60*60*1e3);var e="; expires="+d.toGMTString();document.cookie=a+"="+b+e+"; path=/"}function readCookie(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0,e=c.length;e>d;d++){var f=c[d];while(" "===f.charAt(0))f=f.substring(1,f.length);if(0===f.indexOf(b))return f.substring(b.length,f.length)}return null}window.localStorage||(window.localStorage={setItem:function(a,b){createCookie(a,b,30)},getItem:function(a){return readCookie(a)},removeItem:function(a){createCookie(a,"",-1)}});function QiniuJsSDK(){var that=this;this.detectIEVersion=function(){var a=4,b=document.createElement("div"),c=b.getElementsByTagName("i");while(b.innerHTML="",c[0])a++;return a>4?a:!1};var logger={MUTE:0,FATA:1,ERROR:2,WARN:3,INFO:4,DEBUG:5,TRACE:6,level:0};function log(a,b){var c="[qiniu-js-sdk]["+a+"]";var d=c;for(var e=0;e"+d+"")}function makeLogFunc(a){var b=a.toLowerCase();logger[b]=function(){if(window.console&&window.console.log&&logger.level>=logger[a]){var c=Array.prototype.slice.call(arguments);log(b,c)}}}for(var property in logger)logger.hasOwnProperty(property)&&"number"==typeof logger[property]&&!logger.hasOwnProperty(property.toLowerCase())&&makeLogFunc(property);var qiniuUploadUrl;qiniuUploadUrl="https:"===window.location.protocol?"https://up.qbox.me":"http://upload.qiniu.com";var qiniuUploadUrls=["http://upload.qiniu.com","http://up.qiniu.com"];var qiniuUpHosts={http:["http://upload.qiniu.com","http://up.qiniu.com"],https:["https://up.qbox.me"]};var changeUrlTimes=0;this.resetUploadUrl=function(){var a="https:"===window.location.protocol?qiniuUpHosts.https:qiniuUpHosts.http;var b=changeUrlTimes%a.length;qiniuUploadUrl=a[b],changeUrlTimes++,logger.debug("resetUploadUrl: "+qiniuUploadUrl)},this.isImage=function(a){return a=a.split(/[?#]/)[0],/\.(png|jpg|jpeg|gif|bmp)$/i.test(a)},this.getFileExtension=function(a){var b=a.split(".");var c;return c=1===b.length||""===b[0]&&2===b.length?"":b.pop().toLowerCase()},this.utf8_encode=function(a){if(null===a||"undefined"==typeof a)return"";var b=a+"";var c="",d,e,f=0;d=e=0,f=b.length;for(var g=0;f>g;g++){var h=b.charCodeAt(g);var i=null;if(128>h)e++;else if(h>127&&2048>h)i=String.fromCharCode(h>>6|192,63&h|128);else if(63488&h^!0)i=String.fromCharCode(h>>12|224,h>>6&63|128,63&h|128);else{if(64512&h^!0)throw new RangeError("Unmatched trail surrogate at "+g);var j=b.charCodeAt(++g);if(64512&j^!0)throw new RangeError("Unmatched lead surrogate at "+(g-1));h=((1023&h)<<10)+(1023&j)+65536,i=String.fromCharCode(h>>18|240,h>>12&63|128,h>>6&63|128,63&h|128)}null!==i&&(e>d&&(c+=b.slice(d,e)),c+=i,d=e=g+1)}return e>d&&(c+=b.slice(d,f)),c},this.base64_decode=function(a){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,d,e,f,g,h,i,j,k=0,l=0,m="",n=[];if(!a)return a;a+="";do f=b.indexOf(a.charAt(k++)),g=b.indexOf(a.charAt(k++)),h=b.indexOf(a.charAt(k++)),i=b.indexOf(a.charAt(k++)),j=f<<18|g<<12|h<<6|i,c=j>>16&255,d=j>>8&255,e=255&j,64===h?n[l++]=String.fromCharCode(c):64===i?n[l++]=String.fromCharCode(c,d):n[l++]=String.fromCharCode(c,d,e);while(k>18&63,g=j>>12&63,h=j>>6&63,i=63&j,n[l++]=b.charAt(f)+b.charAt(g)+b.charAt(h)+b.charAt(i);while(kd;d++)b.push(that.stringifyJSON(a[d]));return"["+b.join(",")+"]"}if(null===a)return"null";var e=[];for(var f in a)a.hasOwnProperty(f)&&e.push(that.stringifyJSON(f)+":"+that.stringifyJSON(a[f]));return"{"+e.join(",")+"}";case"number":return a;case!1:return a;case"boolean":return a}},this.trim=function(a){return null===a?"":a.replace(/^\s+|\s+$/g,"")},this.uploader=function(a){var b=function(){var b=that.detectIEVersion();var c,d,e;var f="Safari"===mOxie.Env.browser&&mOxie.Env.version<=5&&"Windows"===mOxie.Env.os&&"7"===mOxie.Env.osVersion||"Safari"===mOxie.Env.browser&&"iOS"===mOxie.Env.os&&"7"===mOxie.Env.osVersion;b&&9>b&&a.chunk_size&&a.runtimes.indexOf("flash")>=0?a.chunk_size=0:f?a.chunk_size=0:(c=20,d=4<d&&(a.chunk_size=d))};var c=function(a){var b=[];for(var c=0;c=0?(d.bucket=d.scope.split(":")[0],d.key=d.scope.split(":")[1]):d.bucket=d.scope,d};var e=function(b){var e=d(b);var f=window.location.protocol+"//uc.qbox.me/v1/query?ak="+e.ak+"&bucket="+e.bucket;logger.debug("putPolicy: ",e),logger.debug("get uphosts from: ",f);var g=that.detectIEVersion();var h;g&&9>=g?(h=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):h=that.createAjax(),h.open("GET",f,!0);var i=function(){if(logger.debug("ajax.readyState: ",h.readyState),4===h.readyState)if(logger.debug("ajax.status: ",h.status),h.status<400){var a=that.parseJSON(h.responseText);qiniuUpHosts.http=c(a.http.up),qiniuUpHosts.https=c(a.https.up),logger.debug("get new uphosts: ",qiniuUpHosts),that.resetUploadUrl()}else logger.error("get uphosts error: ",h.responseText)};g&&9>=g?h.bind("readystatechange",i):h.onreadystatechange=i,h.send()};var f=function(a){return!that.token||that.tokenInfo.isExpired()?g(a):that.token};var g=function(b){if(a.uptoken)that.token=a.uptoken;else if(a.uptoken_url){logger.debug("get uptoken from: ",that.uptoken_url);var c=that.createAjax();if(c.open("GET",that.uptoken_url,!1),c.setRequestHeader("If-Modified-Since","0"),c.send(),200===c.status){var d=that.parseJSON(c.responseText);that.token=d.uptoken;var f=that.token.split(":");var g=that.parseJSON(that.URLSafeBase64Decode(f[2]));that.tokenMap||(that.tokenMap={});var h=function(a){return Math.ceil(a.getTime()/1e3)};var i=h(new Date(c.getResponseHeader("date")));var j=h(new Date);that.tokenInfo={serverDelay:j-i,deadline:g.deadline,isExpired:function(){var a=this.deadline-h(new Date)+this.serverDelay;return 600>a}},logger.debug("get new uptoken: ",that.token),logger.debug("get token info: ",that.tokenInfo)}else logger.error("get uptoken error: ",c.responseText)}else a.uptoken_func?(logger.debug("get uptoken from uptoken_func"),that.token=a.uptoken_func(b),logger.debug("get new uptoken: ",that.token)):logger.error("one of [uptoken, uptoken_url, uptoken_func] settings in options is required!");return that.token&&e(that.token),that.token};var h=function(b,c,d){var e="",f=!1;if(!a.save_key)if(f=b.getOption&&b.getOption("unique_names"),f=f||b.settings&&b.settings.unique_names){var g=that.getFileExtension(c.name);e=g?c.id+"."+g:c.id}else e="function"==typeof d?d(b,c):c.name;return e};if(a.log_level&&(logger.level=a.log_level),!a.domain)throw"domain setting in options is required!";if(!a.browse_button)throw"browse_button setting in options is required!";if(!a.uptoken&&!a.uptoken_url&&!a.uptoken_func)throw"one of [uptoken, uptoken_url, uptoken_func] settings in options is required!";logger.debug("init uploader start"),logger.debug("environment: ",mOxie.Env),logger.debug("userAgent: ",navigator.userAgent);var i={};var j=a.init&&a.init.Error;var k=a.init&&a.init.FileUploaded;a.init.Error=function(){},a.init.FileUploaded=function(){},that.uptoken_url=a.uptoken_url,that.token="",that.key_handler="function"==typeof a.init.Key?a.init.Key:"",this.domain=a.domain;var l="";var m={isResumeUpload:!1,resumeFilesize:0,startTime:"",currentTime:""};b(),logger.debug("invoke reset_chunk_size()"),logger.debug("op.chunk_size: ",a.chunk_size);var n={url:qiniuUploadUrl,multipart_params:{token:""}};var o=that.detectIEVersion();o&&9>=o&&(n.multipart_params.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),plupload.extend(i,a,n),logger.debug("option: ",i);var p=new plupload.Uploader(i);logger.debug("new plupload.Uploader(option)"),p.bind("Init",function(b,c){logger.debug("Init event activated"),a.get_new_uptoken||g(null)}),logger.debug("bind Init event"),p.bind("FilesAdded",function(a,b){logger.debug("FilesAdded event activated");var c=a.getOption&&a.getOption("auto_start");c=c||a.settings&&a.settings.auto_start,logger.debug("auto_start: ",c),logger.debug("files: ",b);var d=function(){return"ios"===mOxie.Env.OS.toLowerCase()?!0:!1};if(d())for(var e=0;e=g&&(f.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),logger.debug("directUpload multipart_params_obj: ",f);var i=a.x_vars;if(void 0!==i&&"object"==typeof i)for(var j in i)i.hasOwnProperty(j)&&("function"==typeof i[j]?f["x:"+j]=i[j](b,c):"object"!=typeof i[j]&&(f["x:"+j]=i[j]));b.setOption({url:qiniuUploadUrl,multipart:!0,chunk_size:e()?a.max_file_size:void 0,multipart_params:f})};var e=function(){var a=navigator.userAgent.toLowerCase();return(a.match(/MicroMessenger/i)||"QQBrowser"===mOxie.Env.browser||a.match(/V1_AND_SQ/i))&&"android"===mOxie.Env.OS.toLowerCase()?!0:!1};var i=b.getOption&&b.getOption("chunk_size");if(i=i||b.settings&&b.settings.chunk_size,logger.debug("uploader.runtime: ",p.runtime),logger.debug("chunk_size: ",i),"html5"!==p.runtime&&"flash"!==p.runtime||!i)logger.debug("directUpload because uploader.runtime !== 'html5' || uploader.runtime !== 'flash' || !chunk_size"),d(b,c,that.key_handler);else if(c.sizen-o&&100!==j.percent&&c.size===j.total?(c.percent=j.percent,c.loaded=j.offset,l=j.ctx,m.isResumeUpload=!0,m.resumeFilesize=j.offset,j.offset+k>c.size&&(k=c.size-j.offset)):localStorage.removeItem(c.name)}m.startTime=(new Date).getTime();var r={};var s=that.detectIEVersion();s&&9>=s&&(r.accept="text/plain; charset=utf-8",logger.debug("add accept text/plain in multipart params")),b.setOption({url:qiniuUploadUrl+"/mkblk/"+k,multipart:!1,chunk_size:i,required_features:"chunks",headers:{Authorization:"UpToken "+f(c)},multipart_params:r})}}),logger.debug("bind BeforeUpload event"),p.bind("UploadProgress",function(a,b){logger.trace("UploadProgress event activated"),m.currentTime=(new Date).getTime();var c=m.currentTime-m.startTime;var d=b.loaded||0;m.isResumeUpload&&(d=b.loaded-m.resumeFilesize),b.speed=(d/c*1e3).toFixed(0)||0}),logger.debug("bind UploadProgress event"),p.bind("ChunkUploaded",function(a,b,c){logger.debug("ChunkUploaded event activated"),logger.debug("file: ",b),logger.debug("info: ",c);var d=that.parseJSON(c.response);logger.debug("res: ",d),l=l?l+","+d.ctx:d.ctx;var e=c.total-c.offset;var g=a.getOption&&a.getOption("chunk_size");g=g||a.settings&&a.settings.chunk_size,g>e&&(a.setOption({url:qiniuUploadUrl+"/mkblk/"+e}),logger.debug("up.setOption url: ",qiniuUploadUrl+"/mkblk/"+e)),a.setOption({headers:{Authorization:"UpToken "+f(b)}}),localStorage.setItem(b.name,that.stringifyJSON({ctx:l,percent:b.percent,total:c.total,offset:c.offset,time:(new Date).getTime()}))}),logger.debug("bind ChunkUploaded event");var q=qiniuUploadUrls.length;var r=function(a){return q-->0?(setTimeout(function(){that.resetUploadUrl(),a.status=plupload.QUEUED,p.stop(),p.start()},0),!0):(q=qiniuUploadUrls.length,!1)};return p.bind("Error",function(a){return function(b,c){logger.error("Error event activated"),logger.error("err: ",c);var d="";var e=c.file;if(e){switch(c.code){case plupload.FAILED:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.FILE_SIZE_ERROR:var f=b.getOption&&b.getOption("max_file_size");f=f||b.settings&&b.settings.max_file_size,d="\u6d4f\u89c8\u5668\u6700\u5927\u53ef\u4e0a\u4f20"+f+"\u3002\u66f4\u5927\u6587\u4ef6\u8bf7\u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\u3002";break;case plupload.FILE_EXTENSION_ERROR:d="\u6587\u4ef6\u9a8c\u8bc1\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002";break;case plupload.HTTP_ERROR:if(""===c.response){if(d=c.message||"\u672a\u77e5\u7f51\u7edc\u9519\u8bef\u3002",!r(e))return;break}var g=that.parseJSON(c.response);var h=g.error;switch(c.status){case 400:d="\u8bf7\u6c42\u62a5\u6587\u683c\u5f0f\u9519\u8bef\u3002";break;case 401:d="\u5ba2\u6237\u7aef\u8ba4\u8bc1\u6388\u6743\u5931\u8d25\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 405:d="\u5ba2\u6237\u7aef\u8bf7\u6c42\u9519\u8bef\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;case 579:d="\u8d44\u6e90\u4e0a\u4f20\u6210\u529f\uff0c\u4f46\u56de\u8c03\u5931\u8d25\u3002";break;case 599:if(d="\u7f51\u7edc\u8fde\u63a5\u5f02\u5e38\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002",!r(e))return;break;case 614:d="\u6587\u4ef6\u5df2\u5b58\u5728\u3002";try{g=that.parseJSON(g.error),h=g.error||"file exists"}catch(i){h=g.error||"file exists"}break;case 631:d="\u6307\u5b9a\u7a7a\u95f4\u4e0d\u5b58\u5728\u3002";break;case 701:d="\u4e0a\u4f20\u6570\u636e\u5757\u6821\u9a8c\u51fa\u9519\u3002\u8bf7\u91cd\u8bd5\u6216\u63d0\u4ea4\u53cd\u9988\u3002";break;default:if(d="\u672a\u77e5\u9519\u8bef\u3002",!r(e))return}d=d+"("+c.status+"\uff1a"+h+")";break;case plupload.SECURITY_ERROR:d="\u5b89\u5168\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002";break;case plupload.GENERIC_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.IO_ERROR:d="\u4e0a\u4f20\u5931\u8d25\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002";break;case plupload.INIT_ERROR:d="\u7f51\u7ad9\u914d\u7f6e\u9519\u8bef\u3002\u8bf7\u8054\u7cfb\u7f51\u7ad9\u7ba1\u7406\u5458\u3002",p.destroy();break;default:if(d=c.message+c.details,!r(e))return}a&&a(b,c,d)}b.refresh()}}(j)),logger.debug("bind Error event"),p.bind("FileUploaded",function(b){return function(c,d,e){logger.debug("FileUploaded event activated"),logger.debug("file: ",d),logger.debug("info: ",e);var f=function(c,d,e){if(a.downtoken_url){var f=that.createAjax();f.open("POST",a.downtoken_url,!0),f.setRequestHeader("Content-type","application/x-www-form-urlencoded"),f.onreadystatechange=function(){if(4===f.readyState)if(200===f.status){var a;try{a=that.parseJSON(f.responseText)}catch(g){throw"invalid json format"}var h={};plupload.extend(h,that.parseJSON(e),a),b&&b(c,d,that.stringifyJSON(h))}else p.trigger("Error",{status:f.status,response:f.responseText,file:d,code:plupload.HTTP_ERROR})},f.send("key="+that.parseJSON(e).key+"&domain="+a.domain)}else b&&b(c,d,e)};var g=that.parseJSON(e.response);if(l=l?l:g.ctx,logger.debug("ctx: ",l),l){var i="";logger.debug("save_key: ",a.save_key),a.save_key||(i=h(c,d,that.key_handler),i=i?"/key/"+that.URLSafeBase64Encode(i):"");var j="/fname/"+that.URLSafeBase64Encode(d.name);logger.debug("op.x_vars: ",a.x_vars);var k=a.x_vars,m="",n="";if(void 0!==k&&"object"==typeof k)for(var o in k)k.hasOwnProperty(o)&&("function"==typeof k[o]?m=that.URLSafeBase64Encode(k[o](c,d)):"object"!=typeof k[o]&&(m=that.URLSafeBase64Encode(k[o])),n+="/x:"+o+"/"+m);var q=qiniuUploadUrl+"/mkfile/"+d.size+i+j+n;var r=that.detectIEVersion();var s;r&&9>=r?(s=new mOxie.XMLHttpRequest,mOxie.Env.swf_url=a.flash_swf_url):s=that.createAjax(),s.open("POST",q,!0),s.setRequestHeader("Content-Type","text/plain;charset=UTF-8"),s.setRequestHeader("Authorization","UpToken "+that.token);var t=function(){if(logger.debug("ajax.readyState: ",s.readyState),4===s.readyState){localStorage.removeItem(d.name);var a;200===s.status?(a=s.responseText,logger.debug("mkfile is success: ",a),f(c,d,a)):(a={status:s.status,response:s.responseText,file:d,code:-200},logger.debug("mkfile is error: ",a),p.trigger("Error",a))}};r&&9>=r?s.bind("readystatechange",t):s.onreadystatechange=t,s.send(l),logger.debug("mkfile: ",q)}else f(c,d,e.response)}}(k)),logger.debug("bind FileUploaded event"),p.init(),logger.debug("invoke uploader.init()"),logger.debug("init uploader end"),p},this.getUrl=function(a){if(!a)return!1;a=encodeURI(a);var b=this.domain;return"/"!==b.slice(b.length-1)&&(b+="/"),b+a},this.imageView2=function(a,b){var c=a.mode||"",d=a.w||"",e=a.h||"",f=a.q||"",g=a.format||"";if(!c)return!1;if(!d&&!e)return!1;var h="imageView2/"+c;return h+=d?"/w/"+d:"",h+=e?"/h/"+e:"",h+=f?"/q/"+f:"",h+=g?"/format/"+g:"",b&&(h=this.getUrl(b)+"?"+h),h},this.imageMogr2=function(a,b){var c=a["auto-orient"]||"",d=a.thumbnail||"",e=a.strip||"",f=a.gravity||"",g=a.crop||"",h=a.quality||"",i=a.rotate||"",j=a.format||"",k=a.blur||"";var l="imageMogr2";return l+=c?"/auto-orient":"",l+=d?"/thumbnail/"+d:"",l+=e?"/strip":"",l+=f?"/gravity/"+f:"",l+=h?"/quality/"+h:"",l+=g?"/crop/"+g:"",l+=i?"/rotate/"+i:"",l+=j?"/format/"+j:"",l+=k?"/blur/"+k:"",b&&(l=this.getUrl(b)+"?"+l),l},this.watermark=function(a,b){var c=a.mode;if(!c)return!1;var d="watermark/"+c;if(1===c){var e=a.image||"";if(!e)return!1;d+=e?"/image/"+this.URLSafeBase64Encode(e):""}else{if(2!==c)return!1;var f=a.text?a.text:"",g=a.font?a.font:"",h=a.fontsize?a.fontsize:"",i=a.fill?a.fill:"";if(!f)return!1;d+=f?"/text/"+this.URLSafeBase64Encode(f):"",d+=g?"/font/"+this.URLSafeBase64Encode(g):"",d+=h?"/fontsize/"+h:"",d+=i?"/fill/"+this.URLSafeBase64Encode(i):""}var j=a.dissolve||"",k=a.gravity||"",l=a.dx||"",m=a.dy||"";return d+=j?"/dissolve/"+j:"",d+=k?"/gravity/"+k:"",d+=l?"/dx/"+l:"",d+=m?"/dy/"+m:"",b&&(d=this.getUrl(b)+"?"+d),d},this.imageInfo=function(a){if(!a)return!1;var b=this.getUrl(a)+"?imageInfo";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.exif=function(a){if(!a)return!1;var b=this.getUrl(a)+"?exif";var c=this.createAjax();var d;var e=this;return c.open("GET",b,!1),c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(d=e.parseJSON(c.responseText))},c.send(),d},this.get=function(a,b){return b&&a?"exif"===a?this.exif(b):"imageInfo"===a?this.imageInfo(b):!1:!1},this.pipeline=function(a,b){var c="[object Array]"===Object.prototype.toString.call(a);var d,e,f="";if(c){for(var g=0,h=a.length;h>g;g++){if(d=a[g],!d.fop)return!1;switch(d.fop){case"watermark":f+=this.watermark(d)+"|";break;case"imageView2":f+=this.imageView2(d)+"|";break;case"imageMogr2":f+=this.imageMogr2(d)+"|";break;default:e=!0}if(e)return!1}if(b){f=this.getUrl(b)+"?"+f;var i=f.length;"|"===f.slice(i-1)&&(f=f.slice(0,i-1))}return f}return!1}}var Qiniu=new QiniuJsSDK;global.Qiniu=Qiniu,global.QiniuJsSDK=QiniuJsSDK}(window);
//# sourceMappingURL=dist/qiniu.min.map
\ No newline at end of file
diff --git a/dist/qiniu.min.map b/dist/qiniu.min.map
index 9ea1ffe0..d02411ae 100644
--- a/dist/qiniu.min.map
+++ b/dist/qiniu.min.map
@@ -1 +1 @@
-{"version":3,"file":"dist/qiniu.min.js","sources":["dist/qiniu.js"],"names":["global","createCookie","key","value","exp","date","Date","setTime","getTime","expires","toGMTString","document","cookie","readCookie","nameEQ","ca","split","i","max","length","c","charAt","substring","indexOf","window","localStorage","setItem","getItem","removeItem","QiniuJsSDK","that","this","detectIEVersion","v","div","createElement","all","getElementsByTagName","innerHTML","logger","MUTE","FATA","ERROR","WARN","INFO","DEBUG","TRACE","level","log","type","args","header","msg","stringifyJSON","console","unshift","apply","getElementById","makeLogFunc","code","func","toLowerCase","Array","prototype","slice","call","arguments","property","hasOwnProperty","qiniuUploadUrl","location","protocol","qiniuUploadUrls","qiniuUpHosts","http","https","changeUrlTimes","resetUploadUrl","hosts","debug","isImage","url","test","getFileExtension","filename","tempArr","ext","pop","utf8_encode","argString","string","utftext","start","end","stringl","n","c1","charCodeAt","enc","String","fromCharCode","RangeError","c2","base64_decode","data","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","dec","tmp_arr","join","base64_encode","URLSafeBase64Encode","replace","URLSafeBase64Decode","createAjax","argument","xmlhttp","XMLHttpRequest","ActiveXObject","parseJSON","JSON","parse","rx_dangerous","text","lastIndex","a","toString","eval","obj","stringify","map","strArr","len","push","trim","uploader","op","reset_chunk_size","ie","BLOCK_BITS","MAX_CHUNK_SIZE","chunk_size","isSpecialSafari","mOxie","Env","browser","version","os","osVersion","runtimes","plupload","parseSize","getHosts","result","host","getUpHosts","uptoken","segments","ak","putPolicy","uphosts_url","scope","ajax","swf_url","flash_swf_url","open","onreadystatechange","readyState","status","res","responseText","up","error","bind","send","getUptoken","file","token","tokenInfo","isExpired","getNewUpToken","uptoken_url","setRequestHeader","tokenMap","getTimestamp","time","Math","ceil","serverTime","getResponseHeader","clientTime","serverDelay","deadline","leftTime","uptoken_func","getFileKey","unique_names","save_key","getOption","settings","name","id","log_level","domain","browse_button","navigator","userAgent","option","_Error_Handler","init","Error","_FileUploaded_Handler","FileUploaded","key_handler","Key","ctx","speedCalInfo","isResumeUpload","resumeFilesize","startTime","currentTime","defaultSetting","multipart_params","accept","extend","Uploader","params","get_new_uptoken","files","auto_start","is_ios","OS","setTimeout","refresh","speed","directUpload","multipart_params_obj","x_vars","undefined","x_key","setOption","multipart","is_android_weixin_or_qq","max_file_size","ua","match","runtime","size","localFileInfo","blockSize","now","before","aDay","percent","total","loaded","offset","required_features","headers","Authorization","trace","timeUsed","fileUploaded","toFixed","info","response","leftSize","retries","unknow_error_retry","QUEUED","stop","err","errTip","FAILED","FILE_SIZE_ERROR","FILE_EXTENSION_ERROR","HTTP_ERROR","message","errorObj","errorText","e","SECURITY_ERROR","GENERIC_ERROR","IO_ERROR","INIT_ERROR","destroy","details","last_step","downtoken_url","ajax_downtoken","res_downtoken","info_extended","trigger","fname","x_val","x_vars_url","getUrl","encodeURI","imageView2","mode","w","h","q","format","imageUrl","imageMogr2","auto_orient","thumbnail","strip","gravity","crop","quality","rotate","blur","watermark","image","font","fontsize","fill","dissolve","dx","dy","imageInfo","xhr","exif","get","pipeline","arr","isArray","Object","errOp","fop","Qiniu"],"mappings":";CAgBC,SAAWA,QAQZ,QAASC,cAAaC,EAAKC,EAAOC,GAC9B,GAAIC,GAAO,GAAIC,KACfD,GAAKE,QAAQF,EAAKG,UAAmB,GAANJ,EAAW,GAAK,GAAK,IACpD,IAAIK,GAAU,aAAeJ,EAAKK,aAClCC,UAASC,OAASV,EAAM,IAAMC,EAAQM,EAAU,WAOpD,QAASI,YAAWX,GAChB,GAAIY,GAASZ,EAAM,GACnB,IAAIa,GAAKJ,SAASC,OAAOI,MAAM,IAC/B,KAAK,GAAIC,GAAI,EAAGC,EAAMH,EAAGI,OAAYD,EAAJD,EAASA,IAAK,CAC3C,GAAIG,GAAIL,EAAGE,EACX,OAAuB,MAAhBG,EAAEC,OAAO,GACZD,EAAIA,EAAEE,UAAU,EAAGF,EAAED,OAEzB,IAA0B,IAAtBC,EAAEG,QAAQT,GACV,MAAOM,GAAEE,UAAUR,EAAOK,OAAQC,EAAED,QAG5C,MAAO,MAKLK,OAAOC,eACTD,OAAOC,cACHC,QAAS,SAAUxB,EAAKC,GACpBF,aAAaC,EAAKC,EAAO,KAE7BwB,QAAS,SAAUzB,GACf,MAAOW,YAAWX,IAEtB0B,WAAY,SAAU1B,GAClBD,aAAaC,EAAK,GAAI,MAKlC,SAAS2B,cAEL,GAAIC,MAAOC,IAUXA,MAAKC,gBAAkB,WACnB,GAAIC,GAAI,EACJC,EAAMvB,SAASwB,cAAc,OAC7BC,EAAMF,EAAIG,qBAAqB,IACnC,OACIH,EAAII,UAAY,iBAAmBL,EAAI,wBACvCG,EAAI,GAEJH,GAEJ,OAAOA,GAAI,EAAIA,GAAI,EAGvB,IAAIM,SACAC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,MAAO,EACPC,MAAO,EAGX,SAASC,KAAIC,EAAMC,GACf,GAAIC,GAAS,kBAAkBF,EAAK,GACpC,IAAIG,GAAMD,CACV,KAAK,GAAIlC,GAAI,EAAGA,EAAIiC,EAAK/B,OAAQF,IAEzBmC,GADmB,gBAAZF,GAAKjC,GACL,IAAMiC,EAAKjC,GAEX,IAAMa,KAAKuB,cAAcH,EAAKjC,GAGzCa,MAAKE,kBAILsB,QAAQN,IAAII,IAEZF,EAAKK,QAAQJ,GACbG,QAAQN,IAAIQ,MAAMF,QAASJ,IAE3BvC,SAAS8C,eAAe,sBACxB9C,SAAS8C,eAAe,oBAAoBnB,WAAa,MAAMc,EAAI,QAI3E,QAASM,aAAYC,GACjB,GAAIC,GAAOD,EAAKE,aAChBtB,QAAOqB,GAAQ,WAGX,GAAGpC,OAAO8B,SAAW9B,OAAO8B,QAAQN,KAAOT,OAAOQ,OAAOR,OAAOoB,GAAM,CAClE,GAAIT,GAAOY,MAAMC,UAAUC,MAAMC,KAAKC,UACtClB,KAAIY,EAAKV,KAKrB,IAAK,GAAIiB,YAAY5B,QACbA,OAAO6B,eAAeD,WAA2C,gBAAtB5B,QAAO4B,YAA4B5B,OAAO6B,eAAeD,SAASN,gBAC7GH,YAAYS,SAKpB,IAAIE,eAEAA,gBAD6B,WAA7B7C,OAAO8C,SAASC,SACC,qBAEA,yBAQrB,IAAIC,kBACA,0BACA,sBAGJ,IAAIC,eACDC,MACI,0BACA,uBAEJC,OACI,sBAIP,IAAIC,gBAAiB,CASrB7C,MAAK8C,eAAiB,WACzB,GAAIC,GAAqC,WAA7BtD,OAAO8C,SAASC,SAAwBE,aAAaE,MAAQF,aAAaC,IACtF,IAAIzD,GAAI2D,eAAiBE,EAAM3D,MAC/BkD,gBAAiBS,EAAM7D,GACvB2D,iBACArC,OAAOwC,MAAM,mBAAmBV,iBAW7BtC,KAAKiD,QAAU,SAASC,GAEpB,MADAA,GAAMA,EAAIjE,MAAM,QAAQ,GACjB,6BAA+BkE,KAAKD,IAW/ClD,KAAKoD,iBAAmB,SAASC,GAC7B,GAAIC,GAAUD,EAASpE,MAAM,IAC7B,IAAIsE,EAMJ,OAJIA,GADmB,IAAnBD,EAAQlE,QAAgC,KAAfkE,EAAQ,IAAgC,IAAnBA,EAAQlE,OAChD,GAEAkE,EAAQE,MAAM1B,eAU5B9B,KAAKyD,YAAc,SAASC,GAgBxB,GAAkB,OAAdA,GAA2C,mBAAdA,GAC7B,MAAO,EAGX,IAAIC,GAAUD,EAAY,EAC1B,IAAIE,GAAU,GACVC,EAAOC,EAAKC,EAAU,CAE1BF,GAAQC,EAAM,EACdC,EAAUJ,EAAOvE,MACjB,KAAK,GAAI4E,GAAI,EAAOD,EAAJC,EAAaA,IAAK,CAC9B,GAAIC,GAAKN,EAAOO,WAAWF,EAC3B,IAAIG,GAAM,IAEV,IAAS,IAALF,EACAH,QACG,IAAIG,EAAK,KAAY,KAALA,EACnBE,EAAMC,OAAOC,aACRJ,GAAM,EAAK,IAAW,GAALA,EAAW,SAE9B,IAAS,MAALA,GAAc,EACrBE,EAAMC,OAAOC,aACRJ,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAW,GAALA,EAAW,SAEvD,CACH,GAAS,MAALA,GAAc,EACd,KAAM,IAAIK,YAAW,gCAAkCN,EAE3D,IAAIO,GAAKZ,EAAOO,aAAaF,EAC7B,IAAS,MAALO,GAAc,EACd,KAAM,IAAID,YAAW,gCAAkCN,EAAI,GAE/DC,KAAY,KAALA,IAAe,KAAY,KAALM,GAAc,MAC3CJ,EAAMC,OAAOC,aACRJ,GAAM,GAAM,IAAOA,GAAM,GAAM,GAAM,IAAOA,GAAM,EAAK,GAAM,IAAW,GAALA,EAAW,KAG3E,OAARE,IACIL,EAAMD,IACND,GAAWD,EAAO1B,MAAM4B,EAAOC,IAEnCF,GAAWO,EACXN,EAAQC,EAAME,EAAI,GAQ1B,MAJIF,GAAMD,IACND,GAAWD,EAAO1B,MAAM4B,EAAOE,IAG5BH,GAGX5D,KAAKwE,cAAgB,SAAUC,GAkB3B,GAAIC,GAAM,mEACV,IAAIC,GAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAMhG,EAAI,EAC1CiG,EAAK,EACLC,EAAM,GACNC,IAEA,KAAKZ,EACD,MAAOA,EAGXA,IAAQ,EAER,GACIK,GAAKJ,EAAIlF,QAAQiF,EAAKnF,OAAOJ,MAC7B6F,EAAKL,EAAIlF,QAAQiF,EAAKnF,OAAOJ,MAC7B8F,EAAKN,EAAIlF,QAAQiF,EAAKnF,OAAOJ,MAC7B+F,EAAKP,EAAIlF,QAAQiF,EAAKnF,OAAOJ,MAE7BgG,EAAOJ,GAAM,GAAKC,GAAM,GAAKC,GAAM,EAAIC,EAEvCN,EAAKO,GAAQ,GAAK,IAClBN,EAAKM,GAAQ,EAAI,IACjBL,EAAY,IAAPK,EAEM,KAAPF,EACAK,EAAQF,KAAQf,OAAOC,aAAaM,GACtB,KAAPM,EACPI,EAAQF,KAAQf,OAAOC,aAAaM,EAAIC,GAExCS,EAAQF,KAAQf,OAAOC,aAAaM,EAAIC,EAAIC,SAE3C3F,EAAIuF,EAAKrF,OAIlB,OAFAgG,GAAMC,EAAQC,KAAK,KAUvBtF,KAAKuF,cAAgB,SAASd,GAgB1B,GAAIC,GAAM,mEACV,IAAIC,GAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAMhG,EAAI,EACtCiG,EAAK,EACLhB,EAAM,GACNkB,IAEJ,KAAKZ,EACD,MAAOA,EAGXA,GAAOzE,KAAKyD,YAAYgB,EAAO,GAE/B,GACIE,GAAKF,EAAKP,WAAWhF,KACrB0F,EAAKH,EAAKP,WAAWhF,KACrB2F,EAAKJ,EAAKP,WAAWhF,KAErBgG,EAAOP,GAAM,GAAKC,GAAM,EAAIC,EAE5BC,EAAKI,GAAQ,GAAK,GAClBH,EAAKG,GAAQ,GAAK,GAClBF,EAAKE,GAAQ,EAAI,GACjBD,EAAY,GAAPC,EAGLG,EAAQF,KAAQT,EAAIpF,OAAOwF,GAAMJ,EAAIpF,OAAOyF,GAAML,EAAIpF,OAAO0F,GAAMN,EAAIpF,OAAO2F,SACzE/F,EAAIuF,EAAKrF,OAIlB,QAFA+E,EAAMkB,EAAQC,KAAK,IAEXb,EAAKrF,OAAS,GAClB,IAAK,GACD+E,EAAMA,EAAIlC,MAAM,EAAG,IAAM,IACzB,MACJ,KAAK,GACDkC,EAAMA,EAAIlC,MAAM,EAAG,IAAM,IAIjC,MAAOkC,IAQXnE,KAAKwF,oBAAsB,SAAStF,GAEhC,MADAA,GAAIF,KAAKuF,cAAcrF,GAChBA,EAAEuF,QAAQ,MAAO,KAAKA,QAAQ,MAAO,MAGhDzF,KAAK0F,oBAAsB,SAASxF,GAEhC,MADAA,GAAIA,EAAEuF,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KAChCzF,KAAKwE,cAActE,IAQ9BF,KAAK2F,WAAa,SAASC,GACvB,GAAIC,KAMJ,OAJIA,GADApG,OAAOqG,eACG,GAAIA,gBAEJ,GAAIC,eAAc,sBAWpC/F,KAAKgG,UAAY,SAASvB,MAEtB,GAAIhF,OAAOwG,MAAQxG,OAAOwG,KAAKC,MAC3B,MAAOzG,QAAOwG,KAAKC,MAAMzB,KAO7B,IAAO0B,cAAe,0GAItB,IAAIC,MAAOhC,OAAOK,KAoBlB,OAnBA0B,cAAaE,UAAY,EACtBF,aAAahD,KAAKiD,QACjBA,KAAOA,KAAKX,QAAQU,aAAc,SAASG,GACxC,MAAO,OAAS,OAASA,EAAEpC,WAAW,GAAGqC,SAAS,KAAKtE,MAAM,OAgB7DuE,KAAK,IAAIJ,KAAK,MAQzBpG,KAAKsB,cAAgB,SAASmF,GAE1B,GAAIhH,OAAOwG,MAAQxG,OAAOwG,KAAKS,UAC3B,MAAOjH,QAAOwG,KAAKS,UAAUD,EAEjC,cAAe,IACX,IAAK,SACD,MAAO,IAAMA,EAAIhB,QAAQ,WAAY,QAAU,GACnD,KAAK,QACD,MAAO,IAAMgB,EAAIE,IAAI5G,KAAKuB,eAAegE,KAAK,KAAO,GACzD,KAAK,SACD,GAAImB,YAAe1E,OAAO,CACtB,GAAI6E,KACJ,IAAIC,GAAMJ,EAAIrH,MACd,KAAK,GAAIF,GAAI,EAAO2H,EAAJ3H,EAASA,IACrB0H,EAAOE,KAAK/G,KAAKuB,cAAcmF,EAAIvH,IAEvC,OAAO,IAAM0H,EAAOtB,KAAK,KAAO,IAC7B,GAAY,OAARmB,EACP,MAAO,MAEP,IAAI9C,KACJ,KAAK,GAAIvB,KAAYqE,GACbA,EAAIpE,eAAeD,IACnBuB,EAAOmD,KAAK/G,KAAKuB,cAAcc,GAAY,IAAMrC,KAAKuB,cAAcmF,EAAIrE,IAGhF,OAAO,IAAMuB,EAAO2B,KAAK,KAAO,GAGxC,KAAK,SACD,MAAOmB,EACX,MAAK,EACD,MAAOA,EACX,KAAK,UACD,MAAOA,KASnBzG,KAAK+G,KAAO,SAASX,GACjB,MAAgB,QAATA,EAAgB,GAAKA,EAAKX,QAAQ,aAAc,KAQ3DzF,KAAKgH,SAAW,SAASC,GAQrB,GAAIC,GAAmB,WACnB,GAAIC,GAAKpH,KAAKE,iBACd,IAAImH,GAAYC,EAAgBC,CAEhC,IAAIC,GAAyC,WAAtBC,MAAMC,IAAIC,SAAwBF,MAAMC,IAAIE,SAAW,GAAsB,YAAjBH,MAAMC,IAAIG,IAA4C,MAAxBJ,MAAMC,IAAII,WAA6C,WAAtBL,MAAMC,IAAIC,SAAyC,QAAjBF,MAAMC,IAAIG,IAAwC,MAAxBJ,MAAMC,IAAII,SAIpNV,IAAW,EAALA,GAAUF,EAAGK,YAAcL,EAAGa,SAAStI,QAAQ,UAAY,EAGjEyH,EAAGK,WAAa,EACTC,EAIPN,EAAGK,WAAa,GAEhBF,EAAa,GACbC,EAAiB,GAAKD,EAEtBE,EAAaS,SAASC,UAAUf,EAAGK,YAC/BA,EAAaD,IACbJ,EAAGK,WAAaD,IAQ5B,IAAIY,GAAW,SAASlF,GACpB,GAAImF,KACJ,KAAK,GAAIhJ,GAAI,EAAGA,EAAI6D,EAAM3D,OAAQF,IAAK,CACnC,GAAIiJ,GAAOpF,EAAM7D,EACU,KAAvBiJ,EAAK3I,QAAQ,MACb0I,EAAOpB,KAAKqB,EAAKlJ,MAAM,KAAK,IAE5BiJ,EAAOpB,KAAKqB,GAGpB,MAAOD,GAGX,IAAIE,GAAa,SAASC,GACtB,GAAIC,GAAWD,EAAQpJ,MAAM,IAC7B,IAAIsJ,GAAKD,EAAS,EAClB,IAAIE,GAAYzI,KAAKiG,UAAUjG,KAAK2F,oBAAoB4C,EAAS,IAGjE,IAAIG,GAAchJ,OAAO8C,SAASC,SAAW,4BAA4B+F,EAAG,WAAWC,EAAUE,KACjGlI,QAAOwC,MAAM,OAAQuF,GACrB/H,OAAOwC,MAAM,cAAewF,GAC5BhI,OAAOwC,MAAM,qBAAsByF,EACnC,IAAItB,GAAKpH,KAAKE,iBACd,IAAI0I,EACAxB,IAAY,GAANA,GACNwB,EAAO,GAAInB,OAAM1B,eACjB0B,MAAMC,IAAImB,QAAU3B,EAAG4B,eAEvBF,EAAO5I,KAAK4F,aAEhBgD,EAAKG,KAAK,MAAOL,GAAa,EAC9B,IAAIM,GAAqB,WAErB,GADAvI,OAAOwC,MAAM,oBAAqB2F,EAAKK,YACf,IAApBL,EAAKK,WAEL,GADAxI,OAAOwC,MAAM,gBAAiB2F,EAAKM,QAC/BN,EAAKM,OAAS,IAAK,CACnB,GAAIC,GAAMnJ,KAAKiG,UAAU2C,EAAKQ,aAC9BzG,cAAaC,KAAOsF,EAASiB,EAAIvG,KAAKyG,IACtC1G,aAAaE,MAAQqF,EAASiB,EAAItG,MAAMwG,IACxC5I,OAAOwC,MAAM,oBAAqBN,cAClC3C,KAAK+C,qBAELtC,QAAO6I,MAAM,sBAAuBV,EAAKQ,cAIjDhC,IAAY,GAANA,EACNwB,EAAKW,KAAK,mBAAoBP,GAE9BJ,EAAKI,mBAAqBA,EAE9BJ,EAAKY,OAcT,IAAIC,GAAa,SAASC,GACtB,OAAK1J,KAAK2J,OAAS3J,KAAK4J,UAAUC,YACvBC,EAAcJ,GAEd1J,KAAK2J,MASpB,IAAIG,GAAgB,SAASJ,GACzB,GAAIxC,EAAGoB,QACHtI,KAAK2J,MAAQzC,EAAGoB,YACb,IAAIpB,EAAG6C,YAAa,CACvBtJ,OAAOwC,MAAM,qBAAsBjD,KAAK+J,YAExC,IAAInB,GAAO5I,KAAK4F,YAUhB,IATAgD,EAAKG,KAAK,MAAO/I,KAAK+J,aAAa,GACnCnB,EAAKoB,iBAAiB,oBAAqB,KAO3CpB,EAAKY,OACe,MAAhBZ,EAAKM,OAAgB,CACrB,GAAIC,GAAMnJ,KAAKiG,UAAU2C,EAAKQ,aAC9BpJ,MAAK2J,MAAQR,EAAIb,OACjB,IAAIC,GAAWvI,KAAK2J,MAAMzK,MAAM,IAChC,IAAIuJ,GAAYzI,KAAKiG,UAAUjG,KAAK2F,oBAAoB4C,EAAS,IAC5DvI,MAAKiK,WACNjK,KAAKiK,YAET,IAAIC,GAAe,SAASC,GACxB,MAAOC,MAAKC,KAAKF,EAAKzL,UAAU,KAEpC,IAAI4L,GAAaJ,EAAa,GAAI1L,MAAKoK,EAAK2B,kBAAkB,SAC9D,IAAIC,GAAaN,EAAa,GAAI1L,MAClCwB,MAAK4J,WACDa,YAAaD,EAAaF,EAC1BI,SAAUjC,EAAUiC,SACpBb,UAAW,WACP,GAAIc,GAAW1K,KAAKyK,SAAWR,EAAa,GAAI1L,OAAUyB,KAAKwK,WAC/D,OAAkB,KAAXE,IAGflK,OAAOwC,MAAM,oBAAqBjD,KAAK2J,OACvClJ,OAAOwC,MAAM,mBAAoBjD,KAAK4J,eAEtCnJ,QAAO6I,MAAM,sBAAuBV,EAAKQ,kBAEtClC,GAAG0D,cACVnK,OAAOwC,MAAM,iCACbjD,KAAK2J,MAAQzC,EAAG0D,aAAalB,GAC7BjJ,OAAOwC,MAAM,oBAAqBjD,KAAK2J,QAEvClJ,OAAO6I,MAAM,+EAKjB,OAHItJ,MAAK2J,OACLtB,EAAWrI,KAAK2J,OAEb3J,KAAK2J,MAIhB,IAAIkB,GAAa,SAASxB,EAAIK,EAAM5H,GAEhC,GAAI1D,GAAM,GACN0M,GAAe,CACnB,KAAK5D,EAAG6D,SAGJ,GAFAD,EAAezB,EAAG2B,WAAa3B,EAAG2B,UAAU,gBAC5CF,EAAeA,GAAiBzB,EAAG4B,UAAY5B,EAAG4B,SAASH,aACzC,CACd,GAAItH,GAAMxD,KAAKqD,iBAAiBqG,EAAKwB,KACrC9M,GAAMoF,EAAMkG,EAAKyB,GAAK,IAAM3H,EAAMkG,EAAKyB,OAEvC/M,GADuB,kBAAT0D,GACRA,EAAKuH,EAAIK,GAETA,EAAKwB,IAGnB,OAAO9M,GASX,IAJI8I,EAAGkE,YACH3K,OAAOQ,MAAQiG,EAAGkE,YAGjBlE,EAAGmE,OACJ,KAAM,wCAGV,KAAKnE,EAAGoE,cACJ,KAAM,+CAGV,KAAKpE,EAAGoB,UAAYpB,EAAG6C,cAAgB7C,EAAG0D,aACtC,KAAM,8EAGVnK,QAAOwC,MAAM,uBAEbxC,OAAOwC,MAAM,gBAAiBwE,MAAMC,KAEpCjH,OAAOwC,MAAM,cAAesI,UAAUC,UAEtC,IAAIC,KAGJ,IAAIC,GAAiBxE,EAAGyE,MAAQzE,EAAGyE,KAAKC,KACxC,IAAIC,GAAwB3E,EAAGyE,MAAQzE,EAAGyE,KAAKG,YAG/C5E,GAAGyE,KAAKC,MAAQ,aAChB1E,EAAGyE,KAAKG,aAAe,aAEvB9L,KAAK+J,YAAc7C,EAAG6C,YACtB/J,KAAK2J,MAAQ,GACb3J,KAAK+L,YAAqC,kBAAhB7E,GAAGyE,KAAKK,IAAqB9E,EAAGyE,KAAKK,IAAM,GACrE/L,KAAKoL,OAASnE,EAAGmE,MAGjB,IAAIY,GAAM,EACV,IAAIC,IACAC,gBAAgB,EAChBC,eAAgB,EAChBC,UAAW,GACXC,YAAa,GAGjBnF,KACA1G,OAAOwC,MAAM,6BACbxC,OAAOwC,MAAM,kBAAmBiE,EAAGK,WAEnC,IAAIgF,IACApJ,IAAKZ,eACLiK,kBACI7C,MAAO,IAGf,IAAIvC,GAAKpH,KAAKE,iBAGVkH,IAAY,GAANA,IACNmF,EAAeC,iBAAiBC,OAAS,4BACzChM,OAAOwC,MAAM,8CAIjB+E,SAAS0E,OAAOjB,EAAQvE,EAAIqF,GAE5B9L,OAAOwC,MAAM,WAAYwI,EAGzB,IAAIxE,GAAW,GAAIe,UAAS2E,SAASlB,EAErChL,QAAOwC,MAAM,iCAGbgE,EAASsC,KAAK,OAAQ,SAASF,EAAIuD,GAC/BnM,OAAOwC,MAAM,wBAKTiE,EAAG2F,iBACH/C,EAAc,QAKtBrJ,OAAOwC,MAAM,mBAKbgE,EAASsC,KAAK,aAAc,SAASF,EAAIyD,GACrCrM,OAAOwC,MAAM,6BACb,IAAI8J,GAAa1D,EAAG2B,WAAa3B,EAAG2B,UAAU,aAC9C+B,GAAaA,GAAe1D,EAAG4B,UAAY5B,EAAG4B,SAAS8B,WACvDtM,OAAOwC,MAAM,eAAgB8J,GAC7BtM,OAAOwC,MAAM,UAAW6J,EAGxB,IAAIE,GAAS,WACT,MAAgC,QAA7BvF,MAAMC,IAAIuF,GAAGlL,eACL,GAEA,EAKf,IAAIiL,IACA,IAAK,GAAI7N,GAAI,EAAGA,EAAI2N,EAAMzN,OAAQF,IAAK,CACnC,GAAIuK,GAAOoD,EAAM3N,EACjB,IAAIqE,GAAMxD,KAAKqD,iBAAiBqG,EAAKwB,KACrCxB,GAAKwB,KAAOxB,EAAKyB,GAAK,IAAM3H,EAIhCuJ,GACAG,WAAW,WACP7D,EAAGvF,QACHrD,OAAOwC,MAAM,sBACd,GAQPoG,EAAG8D,YAGP1M,OAAOwC,MAAM,yBAObgE,EAASsC,KAAK,eAAgB,SAASF,EAAIK,GACvCjJ,OAAOwC,MAAM,gCAEbyG,EAAK0D,MAAQ1D,EAAK0D,OAAS,EAC3BnB,EAAM,GAEH/E,EAAG2F,iBACF/C,EAAcJ,EAGlB,IAAI2D,GAAe,SAAShE,EAAIK,EAAM5H,GAClCoK,EAAaG,WAAY,GAAI7N,OAAOE,SACpC,IAAI4O,EAEAA,GADApG,EAAG6D,UAECpB,MAAS3J,KAAK2J,QAIdvL,IAAOyM,EAAWxB,EAAIK,EAAM5H,GAC5B6H,MAAS3J,KAAK2J,MAGtB,IAAIvC,GAAKpH,KAAKE,iBAGVkH,IAAY,GAANA,IACNkG,EAAqBb,OAAS,4BAC9BhM,OAAOwC,MAAM,8CAGjBxC,OAAOwC,MAAM,sCAAuCqK,EAEpD,IAAIC,GAASrG,EAAGqG,MAChB,IAAeC,SAAXD,GAA0C,gBAAXA,GAC/B,IAAK,GAAIE,KAASF,GACVA,EAAOjL,eAAemL,KACO,kBAAlBF,GAAOE,GACdH,EAAqB,KAAOG,GAASF,EAAOE,GAAOpE,EAAIK,GACvB,gBAAlB6D,GAAOE,KACrBH,EAAqB,KAAOG,GAASF,EAAOE,IAO5DpE,GAAGqE,WACCvK,IAAOZ,eACPoL,WAAa,EACbpG,WAAcqG,IAA4B1G,EAAG2G,cAAgBL,OAC7DhB,iBAAoBc,IAK5B,IAAIM,GAA0B,WAC1B,GAAIE,GAAKvC,UAAUC,UAAUzJ,aAC7B,QAAI+L,EAAGC,MAAM,oBAA4C,cAAtBtG,MAAMC,IAAIC,SAA2BmG,EAAGC,MAAM,gBAA+C,YAA7BtG,MAAMC,IAAIuF,GAAGlL,eACrG,GAEA,EAIf,IAAIwF,GAAa8B,EAAG2B,WAAa3B,EAAG2B,UAAU,aAO9C,IANAzD,EAAaA,GAAe8B,EAAG4B,UAAY5B,EAAG4B,SAAS1D,WAEvD9G,OAAOwC,MAAM,qBAAqBgE,EAAS+G,SAC3CvN,OAAOwC,MAAM,eAAesE,GAGF,UAArBN,EAAS+G,SAA4C,UAArB/G,EAAS+G,UAAwBzG,EA8ElE9G,OAAOwC,MAAM,oGAEboK,EAAahE,EAAIK,EAAM1J,KAAK+L,iBA/E5B,IAAIrC,EAAKuE,KAAO1G,GAAcqG,IAC1BnN,OAAOwC,MAAM,4EAEboK,EAAahE,EAAIK,EAAM1J,KAAK+L,iBACzB,CAIH,GAAImC,GAAgBvO,aAAaE,QAAQ6J,EAAKwB,KAC9C,IAAIiD,GAAY5G,CAChB,IAAI2G,EAAe,CAGfA,EAAgBlO,KAAKiG,UAAUiI,EAC/B,IAAIE,IAAM,GAAK5P,OAAQE,SACvB,IAAI2P,GAASH,EAAc/D,MAAQ,CACnC,IAAImE,GAAO,KAKQA,GAAfF,EAAMC,GAEwB,MAA1BH,EAAcK,SACV7E,EAAKuE,OAASC,EAAcM,OAG5B9E,EAAK6E,QAAUL,EAAcK,QAC7B7E,EAAK+E,OAASP,EAAcQ,OAC5BzC,EAAMiC,EAAcjC,IAGpBC,EAAaC,gBAAiB,EAC9BD,EAAaE,eAAiB8B,EAAcQ,OAGxCR,EAAcQ,OAASP,EAAYzE,EAAKuE,OACxCE,EAAYzE,EAAKuE,KAAOC,EAAcQ,SAclD/O,aAAaG,WAAW4J,EAAKwB,MAGrCgB,EAAaG,WAAY,GAAI7N,OAAOE,SACpC,IAAI4O,KACJ,IAAIlG,GAAKpH,KAAKE,iBAGVkH,IAAY,GAANA,IACNkG,EAAqBb,OAAS,4BAC9BhM,OAAOwC,MAAM,8CAIjBoG,EAAGqE,WACCvK,IAAOZ,eAAiB,UAAY4L,EACpCR,WAAa,EACbpG,WAAcA,EACdoH,kBAAqB,SACrBC,SACIC,cAAiB,WAAapF,EAAWC,IAE7C8C,iBAAoBc,OAUpC7M,OAAOwC,MAAM,2BAIbgE,EAASsC,KAAK,iBAAkB,SAASF,EAAIK,GACzCjJ,OAAOqO,MAAM,kCACb5C,EAAaI,aAAc,GAAI9N,OAAOE,SACtC,IAAIqQ,GAAW7C,EAAaI,YAAcJ,EAAaG,SACvD,IAAI2C,GAAetF,EAAK+E,QAAU,CAC9BvC,GAAaC,iBACb6C,EAAetF,EAAK+E,OAASvC,EAAaE,gBAE9C1C,EAAK0D,OAAS4B,EAAeD,EAAW,KAAME,QAAQ,IAAM,IAGhExO,OAAOwC,MAAM,6BAIbgE,EAASsC,KAAK,gBAAiB,SAASF,EAAIK,EAAMwF,GAC9CzO,OAAOwC,MAAM,iCACbxC,OAAOwC,MAAM,SAAUyG,GACvBjJ,OAAOwC,MAAM,SAAUiM,EACvB,IAAI/F,GAAMnJ,KAAKiG,UAAUiJ,EAAKC,SAC9B1O,QAAOwC,MAAM,QAASkG,GAEtB8C,EAAMA,EAAMA,EAAM,IAAM9C,EAAI8C,IAAM9C,EAAI8C,GACtC,IAAImD,GAAWF,EAAKV,MAAQU,EAAKR,MACjC,IAAInH,GAAa8B,EAAG2B,WAAa3B,EAAG2B,UAAU,aAC9CzD,GAAaA,GAAe8B,EAAG4B,UAAY5B,EAAG4B,SAAS1D,WACxCA,EAAX6H,IACA/F,EAAGqE,WACCvK,IAAOZ,eAAiB,UAAY6M,IAExC3O,OAAOwC,MAAM,qBAAsBV,eAAiB,UAAY6M,IAEpE/F,EAAGqE,WACCkB,SACIC,cAAiB,WAAapF,EAAWC,MAGjD/J,aAAaC,QAAQ8J,EAAKwB,KAAMlL,KAAKuB,eACjC0K,IAAKA,EACLsC,QAAS7E,EAAK6E,QACdC,MAAOU,EAAKV,MACZE,OAAQQ,EAAKR,OACbvE,MAAM,GAAK3L,OAAQE,eAI3B+B,OAAOwC,MAAM,2BAEb,IAAIoM,GAAU3M,gBAAgBrD,MAG9B,IAAIiQ,GAAqB,SAAS5F,GAC9B,MAAI2F,KAAY,GACZnC,WAAW,WACPlN,KAAK+C,iBACL2G,EAAKR,OAASlB,SAASuH,OACvBtI,EAASuI,OACTvI,EAASnD,SACV,IACI,IAEPuL,EAAU3M,gBAAgBrD,QACnB,GAwPf,OAlPA4H,GAASsC,KAAK,QAAS,SAAUmC,GAC7B,MAAO,UAASrC,EAAIoG,GAChBhP,OAAO6I,MAAM,yBACb7I,OAAO6I,MAAM,QAASmG,EACtB,IAAIC,GAAS,EACb,IAAIhG,GAAO+F,EAAI/F,IACf,IAAIA,EAAM,CACN,OAAQ+F,EAAI5N,MACR,IAAKmG,UAAS2H,OACVD,EAAS,oEACT,MACJ,KAAK1H,UAAS4H,gBACV,GAAI/B,GAAgBxE,EAAG2B,WAAa3B,EAAG2B,UAAU,gBACjD6C,GAAgBA,GAAkBxE,EAAG4B,UAAY5B,EAAG4B,SAAS4C,cAC7D6B,EAAS,mDAAa7B,EAAgB,sFACtC,MACJ,KAAK7F,UAAS6H,qBACVH,EAAS,gFACT,MACJ,KAAK1H,UAAS8H,WACV,GAAqB,KAAjBL,EAAIN,SAAiB,CAGrB,GADAO,EAASD,EAAIM,SAAW,8CACnBT,EAAmB5F,GACpB,MAEJ,OAEJ,GAAIsG,GAAWhQ,KAAKiG,UAAUwJ,EAAIN,SAClC,IAAIc,GAAYD,EAAS1G,KACzB,QAAQmG,EAAIvG,QACR,IAAK,KACDwG,EAAS,wDACT,MACJ,KAAK,KACDA,EAAS,oHACT,MACJ,KAAK,KACDA,EAAS,wGACT,MACJ,KAAK,KACDA,EAAS,gFACT,MACJ,KAAK,KAED,GADAA,EAAS,oGACJJ,EAAmB5F,GACpB,MAEJ,MACJ,KAAK,KACDgG,EAAS,sCACT,KACIM,EAAWhQ,KAAKiG,UAAU+J,EAAS1G,OACnC2G,EAAYD,EAAS1G,OAAS,cAChC,MAAO4G,GACLD,EAAYD,EAAS1G,OAAS,cAElC,KACJ,KAAK,KACDoG,EAAS,kDACT,MACJ,KAAK,KACDA,EAAS,oHACT,MACJ,SAEI,GADAA,EAAS,kCACJJ,EAAmB5F,GACpB,OAIZgG,EAASA,EAAS,IAAMD,EAAIvG,OAAS,SAAM+G,EAAY,GACvD,MACJ,KAAKjI,UAASmI,eACVT,EAAS,kGACT,MACJ,KAAK1H,UAASoI,cACVV,EAAS,oEACT,MACJ,KAAK1H,UAASqI,SACVX,EAAS,oEACT,MACJ,KAAK1H,UAASsI,WACVZ,EAAS,mGACTzI,EAASsJ,SACT,MACJ,SAEI,GADAb,EAASD,EAAIM,QAAUN,EAAIe,SACtBlB,EAAmB5F,GACpB,OAIRgC,GACAA,EAAerC,EAAIoG,EAAKC,GAGhCrG,EAAG8D,YAERzB,IAEHjL,OAAOwC,MAAM,oBAMbgE,EAASsC,KAAK,eAAgB,SAAUsC,GACpC,MAAO,UAASxC,EAAIK,EAAMwF,GACtBzO,OAAOwC,MAAM,gCACbxC,OAAOwC,MAAM,SAAUyG,GACvBjJ,OAAOwC,MAAM,SAAUiM,EACvB,IAAIuB,GAAY,SAASpH,EAAIK,EAAMwF,GAC/B,GAAIhI,EAAGwJ,cAAe,CAGlB,GAAIC,GAAiB3Q,KAAK4F,YAC1B+K,GAAe5H,KAAK,OAAQ7B,EAAGwJ,eAAe,GAC9CC,EAAe3G,iBAAiB,eAAgB,qCAChD2G,EAAe3H,mBAAqB,WAChC,GAAkC,IAA9B2H,EAAe1H,WACf,GAA8B,MAA1B0H,EAAezH,OAAgB,CAC/B,GAAI0H,EACJ,KACIA,EAAgB5Q,KAAKiG,UAAU0K,EAAevH,cAChD,MAAO8G,GACL,KAAM,sBAEV,GAAIW,KACJ7I,UAAS0E,OAAOmE,EAAe7Q,KAAKiG,UAAUiJ,GAAO0B,GACjD/E,GACAA,EAAsBxC,EAAIK,EAAM1J,KAAKuB,cAAcsP,QAGvD5J,GAAS6J,QAAQ,SACb5H,OAAQyH,EAAezH,OACvBiG,SAAUwB,EAAevH,aACzBM,KAAMA,EACN7H,KAAMmG,SAAS8H,cAK/Ba,EAAenH,KAAK,OAASxJ,KAAKiG,UAAUiJ,GAAM9Q,IAAM,WAAa8I,EAAGmE,YACjEQ,IACPA,EAAsBxC,EAAIK,EAAMwF,GAIxC,IAAI/F,GAAMnJ,KAAKiG,UAAUiJ,EAAKC,SAS9B,IARAlD,EAAMA,EAAMA,EAAM9C,EAAI8C,IAOtBxL,OAAOwC,MAAM,QAASgJ,GAClBA,EAAK,CACL,GAAI7N,GAAM,EACVqC,QAAOwC,MAAM,aAAciE,EAAG6D,UACzB7D,EAAG6D,WACJ3M,EAAMyM,EAAWxB,EAAIK,EAAM1J,KAAK+L,aAChC3N,EAAMA,EAAM,QAAU4B,KAAKyF,oBAAoBrH,GAAO,GAG1D,IAAI2S,GAAQ,UAAY/Q,KAAKyF,oBAAoBiE,EAAKwB,KAEtDzK,QAAOwC,MAAM,cAAeiE,EAAGqG,OAC/B,IAAIA,GAASrG,EAAGqG,OACZyD,EAAQ,GACRC,EAAa,EACjB,IAAezD,SAAXD,GAA0C,gBAAXA,GAC/B,IAAK,GAAIE,KAASF,GACVA,EAAOjL,eAAemL,KACO,kBAAlBF,GAAOE,GACduD,EAAQhR,KAAKyF,oBAAoB8H,EAAOE,GAAOpE,EAAIK,IACnB,gBAAlB6D,GAAOE,KACrBuD,EAAQhR,KAAKyF,oBAAoB8H,EAAOE,KAE5CwD,GAAc,MAAQxD,EAAQ,IAAMuD,EAKhD,IAAI7N,GAAMZ,eAAiB,WAAamH,EAAKuE,KAAO7P,EAAM2S,EAAQE,CAElE,IAAI7J,GAAKpH,KAAKE,iBACd,IAAI0I,EACAxB,IAAY,GAANA,GACNwB,EAAO,GAAInB,OAAM1B,eACjB0B,MAAMC,IAAImB,QAAU3B,EAAG4B,eAEvBF,EAAO5I,KAAK4F,aAEhBgD,EAAKG,KAAK,OAAQ5F,GAAK,GACvByF,EAAKoB,iBAAiB,eAAgB,4BACtCpB,EAAKoB,iBAAiB,gBAAiB,WAAahK,KAAK2J,MACzD,IAAIX,GAAqB,WAErB,GADAvI,OAAOwC,MAAM,oBAAqB2F,EAAKK,YACf,IAApBL,EAAKK,WAAkB,CACvBtJ,aAAaG,WAAW4J,EAAKwB,KAC7B,IAAIgE,EACgB,OAAhBtG,EAAKM,QACLgG,EAAOtG,EAAKQ,aACZ3I,OAAOwC,MAAM,sBAAuBiM,GACpCuB,EAAUpH,EAAIK,EAAMwF,KAEpBA,GACIhG,OAAQN,EAAKM,OACbiG,SAAUvG,EAAKQ,aACfM,KAAMA,EACN7H,KAAM,MAEVpB,OAAOwC,MAAM,oBAAqBiM,GAClCjI,EAAS6J,QAAQ,QAAS5B,KAIlC9H,IAAY,GAANA,EACNwB,EAAKW,KAAK,mBAAoBP,GAE9BJ,EAAKI,mBAAqBA,EAE9BJ,EAAKY,KAAKyC,GACVxL,OAAOwC,MAAM,WAAYE,OAEzBsN,GAAUpH,EAAIK,EAAMwF,EAAKC,YAIlCtD,IAEHpL,OAAOwC,MAAM,2BAGbgE,EAAS0E,OAETlL,OAAOwC,MAAM,0BAEbxC,OAAOwC,MAAM,qBAENgE,GAQXhH,KAAKiR,OAAS,SAAS9S,GACnB,IAAKA,EACD,OAAO,CAEXA,GAAM+S,UAAU/S,EAChB,IAAIiN,GAASpL,KAAKoL,MAIlB,OAHwC,MAApCA,EAAOnJ,MAAMmJ,EAAOhM,OAAS,KAC7BgM,GAAkB,KAEfA,EAASjN,GASpB6B,KAAKmR,WAAa,SAASlK,EAAI9I,GAC3B,GAAIiT,GAAOnK,EAAGmK,MAAQ,GAClBC,EAAIpK,EAAGoK,GAAK,GACZC,EAAIrK,EAAGqK,GAAK,GACZC,EAAItK,EAAGsK,GAAK,GACZC,EAASvK,EAAGuK,QAAU,EAC1B,KAAKJ,EACD,OAAO,CAEX,KAAKC,IAAMC,EACP,OAAO,CAGX,IAAIG,GAAW,cAAgBL,CAQ/B,OAPAK,IAAYJ,EAAI,MAAQA,EAAI,GAC5BI,GAAYH,EAAI,MAAQA,EAAI,GAC5BG,GAAYF,EAAI,MAAQA,EAAI,GAC5BE,GAAYD,EAAS,WAAaA,EAAS,GACvCrT,IACAsT,EAAWzR,KAAKiR,OAAO9S,GAAO,IAAMsT,GAEjCA,GASXzR,KAAK0R,WAAa,SAASzK,EAAI9I,GAC3B,GAAIwT,GAAc1K,EAAG,gBAAkB,GACnC2K,EAAY3K,EAAG2K,WAAa,GAC5BC,EAAQ5K,EAAG4K,OAAS,GACpBC,EAAU7K,EAAG6K,SAAW,GACxBC,EAAO9K,EAAG8K,MAAQ,GAClBC,EAAU/K,EAAG+K,SAAW,GACxBC,EAAShL,EAAGgL,QAAU,GACtBT,EAASvK,EAAGuK,QAAU,GACtBU,EAAOjL,EAAGiL,MAAQ,EAGtB,IAAIT,GAAW,YAef,OAbAA,IAAYE,EAAc,eAAiB,GAC3CF,GAAYG,EAAY,cAAgBA,EAAY,GACpDH,GAAYI,EAAQ,SAAW,GAC/BJ,GAAYK,EAAU,YAAcA,EAAU,GAC9CL,GAAYO,EAAU,YAAcA,EAAU,GAC9CP,GAAYM,EAAO,SAAWA,EAAO,GACrCN,GAAYQ,EAAS,WAAaA,EAAS,GAC3CR,GAAYD,EAAS,WAAaA,EAAS,GAC3CC,GAAYS,EAAO,SAAWA,EAAO,GAEjC/T,IACAsT,EAAWzR,KAAKiR,OAAO9S,GAAO,IAAMsT,GAEjCA,GASXzR,KAAKmS,UAAY,SAASlL,EAAI9I,GAC1B,GAAIiT,GAAOnK,EAAGmK,IACd,KAAKA,EACD,OAAO,CAGX,IAAIK,GAAW,aAAeL,CAE9B,IAAa,IAATA,EAAY,CACZ,GAAIgB,GAAQnL,EAAGmL,OAAS,EACxB,KAAKA,EACD,OAAO,CAEXX,IAAYW,EAAQ,UAAYpS,KAAKwF,oBAAoB4M,GAAS,OAC/D,CAAA,GAAa,IAAThB,EAcP,OAAO,CAbP,IAAIhL,GAAOa,EAAGb,KAAOa,EAAGb,KAAO,GAC3BiM,EAAOpL,EAAGoL,KAAOpL,EAAGoL,KAAO,GAC3BC,EAAWrL,EAAGqL,SAAWrL,EAAGqL,SAAW,GACvCC,EAAOtL,EAAGsL,KAAOtL,EAAGsL,KAAO,EAC/B,KAAKnM,EACD,OAAO,CAEXqL,IAAYrL,EAAO,SAAWpG,KAAKwF,oBAAoBY,GAAQ,GAC/DqL,GAAYY,EAAO,SAAWrS,KAAKwF,oBAAoB6M,GAAQ,GAC/DZ,GAAYa,EAAW,aAAeA,EAAW,GACjDb,GAAYc,EAAO,SAAWvS,KAAKwF,oBAAoB+M,GAAQ,GAMnE,GAAIC,GAAWvL,EAAGuL,UAAY,GAC1BV,EAAU7K,EAAG6K,SAAW,GACxBW,EAAKxL,EAAGwL,IAAM,GACdC,EAAKzL,EAAGyL,IAAM,EAUlB,OARAjB,IAAYe,EAAW,aAAeA,EAAW,GACjDf,GAAYK,EAAU,YAAcA,EAAU,GAC9CL,GAAYgB,EAAK,OAASA,EAAK,GAC/BhB,GAAYiB,EAAK,OAASA,EAAK,GAE3BvU,IACAsT,EAAWzR,KAAKiR,OAAO9S,GAAO,IAAMsT,GAEjCA,GAQXzR,KAAK2S,UAAY,SAASxU,GACtB,IAAKA,EACD,OAAO,CAEX,IAAI+E,GAAMlD,KAAKiR,OAAO9S,GAAO,YAC7B,IAAIyU,GAAM5S,KAAK2F,YACf,IAAIsJ,EACJ,IAAIlP,GAAOC,IAQX,OAPA4S,GAAI9J,KAAK,MAAO5F,GAAK,GACrB0P,EAAI7J,mBAAqB,WACE,IAAnB6J,EAAI5J,YAAmC,MAAf4J,EAAI3J,SAC5BgG,EAAOlP,EAAKiG,UAAU4M,EAAIzJ,gBAGlCyJ,EAAIrJ,OACG0F,GAQXjP,KAAK6S,KAAO,SAAS1U,GACjB,IAAKA,EACD,OAAO,CAEX,IAAI+E,GAAMlD,KAAKiR,OAAO9S,GAAO,OAC7B,IAAIyU,GAAM5S,KAAK2F,YACf,IAAIsJ,EACJ,IAAIlP,GAAOC,IAQX,OAPA4S,GAAI9J,KAAK,MAAO5F,GAAK,GACrB0P,EAAI7J,mBAAqB,WACE,IAAnB6J,EAAI5J,YAAmC,MAAf4J,EAAI3J,SAC5BgG,EAAOlP,EAAKiG,UAAU4M,EAAIzJ,gBAGlCyJ,EAAIrJ,OACG0F,GAUXjP,KAAK8S,IAAM,SAAS5R,EAAM/C,GACtB,MAAKA,IAAQ+C,EAGA,SAATA,EACOlB,KAAK6S,KAAK1U,GACD,cAAT+C,EACAlB,KAAK2S,UAAUxU,IAEnB,GAPI,GAkBf6B,KAAK+S,SAAW,SAASC,EAAK7U,GAC1B,GAAI8U,GAAkD,mBAAxCC,OAAOlR,UAAUuE,SAASrE,KAAK8Q,EAC7C,IAAIxH,GAAQ2H,EAAO1B,EAAW,EAC9B,IAAIwB,EAAS,CACT,IAAK,GAAI/T,GAAI,EAAG2H,EAAMmM,EAAI5T,OAAYyH,EAAJ3H,EAASA,IAAK,CAE5C,GADAsM,EAASwH,EAAI9T,IACRsM,EAAO4H,IACR,OAAO,CAEX,QAAQ5H,EAAO4H,KACX,IAAK,YACD3B,GAAYzR,KAAKmS,UAAU3G,GAAU,GACrC,MACJ,KAAK,aACDiG,GAAYzR,KAAKmR,WAAW3F,GAAU,GACtC,MACJ,KAAK,aACDiG,GAAYzR,KAAK0R,WAAWlG,GAAU,GACtC,MACJ,SACI2H,GAAQ,EAGhB,GAAIA,EACA,OAAO,EAGf,GAAIhV,EAAK,CACLsT,EAAWzR,KAAKiR,OAAO9S,GAAO,IAAMsT,CACpC,IAAIrS,GAASqS,EAASrS,MACa,OAA/BqS,EAASxP,MAAM7C,EAAS,KACxBqS,EAAWA,EAASxP,MAAM,EAAG7C,EAAS,IAG9C,MAAOqS,GAEX,OAAO,GAIf,GAAI4B,OAAQ,GAAIvT,WAEhB7B,QAAOoV,MAAQA,MAEfpV,OAAO6B,WAAaA,YAEhBL"}
\ No newline at end of file
+{"version":3,"file":"dist/qiniu.min.js","sources":["dist/qiniu.js"],"names":["global","createCookie","key","value","exp","date","Date","setTime","getTime","expires","toGMTString","document","cookie","readCookie","nameEQ","ca","split","i","max","length","c","charAt","substring","indexOf","window","localStorage","setItem","getItem","removeItem","QiniuJsSDK","that","this","detectIEVersion","v","div","createElement","all","getElementsByTagName","innerHTML","logger","MUTE","FATA","ERROR","WARN","INFO","DEBUG","TRACE","level","log","type","args","header","msg","stringifyJSON","console","unshift","apply","getElementById","makeLogFunc","code","func","toLowerCase","Array","prototype","slice","call","arguments","property","hasOwnProperty","qiniuUploadUrl","location","protocol","qiniuUploadUrls","qiniuUpHosts","http","https","changeUrlTimes","resetUploadUrl","hosts","debug","isImage","url","test","getFileExtension","filename","tempArr","ext","pop","utf8_encode","argString","string","utftext","start","end","stringl","n","c1","charCodeAt","enc","String","fromCharCode","RangeError","c2","base64_decode","data","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","dec","tmp_arr","join","base64_encode","URLSafeBase64Encode","replace","URLSafeBase64Decode","createAjax","argument","xmlhttp","XMLHttpRequest","ActiveXObject","parseJSON","JSON","parse","rx_dangerous","text","lastIndex","a","toString","eval","obj","stringify","map","strArr","len","push","trim","uploader","op","reset_chunk_size","ie","BLOCK_BITS","MAX_CHUNK_SIZE","chunk_size","isSpecialSafari","mOxie","Env","browser","version","os","osVersion","runtimes","plupload","parseSize","getHosts","result","host","getPutPolicy","uptoken","segments","ak","putPolicy","scope","bucket","getUpHosts","uphosts_url","ajax","swf_url","flash_swf_url","open","onreadystatechange","readyState","status","res","responseText","up","error","bind","send","getUptoken","file","token","tokenInfo","isExpired","getNewUpToken","uptoken_url","setRequestHeader","tokenMap","getTimestamp","time","Math","ceil","serverTime","getResponseHeader","clientTime","serverDelay","deadline","leftTime","uptoken_func","getFileKey","unique_names","save_key","getOption","settings","name","id","log_level","domain","browse_button","navigator","userAgent","option","_Error_Handler","init","Error","_FileUploaded_Handler","FileUploaded","key_handler","Key","ctx","speedCalInfo","isResumeUpload","resumeFilesize","startTime","currentTime","defaultSetting","multipart_params","accept","extend","Uploader","params","get_new_uptoken","files","auto_start","is_ios","OS","setTimeout","refresh","speed","directUpload","multipart_params_obj","x_vars","undefined","x_key","setOption","multipart","is_android_weixin_or_qq","max_file_size","ua","match","runtime","size","localFileInfo","blockSize","now","before","aDay","percent","total","loaded","offset","required_features","headers","Authorization","trace","timeUsed","fileUploaded","toFixed","info","response","leftSize","retries","unknow_error_retry","QUEUED","stop","err","errTip","FAILED","FILE_SIZE_ERROR","FILE_EXTENSION_ERROR","HTTP_ERROR","message","errorObj","errorText","e","SECURITY_ERROR","GENERIC_ERROR","IO_ERROR","INIT_ERROR","destroy","details","last_step","downtoken_url","ajax_downtoken","res_downtoken","info_extended","trigger","fname","x_val","x_vars_url","getUrl","encodeURI","imageView2","mode","w","h","q","format","imageUrl","imageMogr2","auto_orient","thumbnail","strip","gravity","crop","quality","rotate","blur","watermark","image","font","fontsize","fill","dissolve","dx","dy","imageInfo","xhr","exif","get","pipeline","arr","isArray","Object","errOp","fop","Qiniu"],"mappings":"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"}
\ No newline at end of file
diff --git a/package.json b/package.json
index a1db1d50..f3cf63ce 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "qiniu-js",
"jsName": "qiniu",
- "version": "1.0.17-beta",
+ "version": "1.0.17.1",
"private": false,
"scripts": {
"start": "node demo/server.js"
diff --git a/src/qiniu.js b/src/qiniu.js
index 619eb63c..52066701 100644
--- a/src/qiniu.js
+++ b/src/qiniu.js
@@ -595,14 +595,25 @@ function QiniuJsSDK() {
return result;
};
- var getUpHosts = function(uptoken) {
+ var getPutPolicy = function (uptoken) {
var segments = uptoken.split(":");
var ak = segments[0];
var putPolicy = that.parseJSON(that.URLSafeBase64Decode(segments[2]));
+ putPolicy.ak = ak;
+ if (putPolicy.scope.indexOf(":") >= 0) {
+ putPolicy.bucket = putPolicy.scope.split(":")[0];
+ putPolicy.key = putPolicy.scope.split(":")[1];
+ } else {
+ putPolicy.bucket = putPolicy.scope;
+ }
+ return putPolicy;
+ };
+
+ var getUpHosts = function(uptoken) {
+ var putPolicy = getPutPolicy(uptoken);
// var uphosts_url = "//uc.qbox.me/v1/query?ak="+ak+"&bucket="+putPolicy.scope;
// IE 9- is not support protocal relative url
- var uphosts_url = window.location.protocol + "//uc.qbox.me/v1/query?ak="+ak+"&bucket="+putPolicy.scope;
- logger.debug("ak: ", ak);
+ var uphosts_url = window.location.protocol + "//uc.qbox.me/v1/query?ak=" + putPolicy.ak + "&bucket=" + putPolicy.bucket;
logger.debug("putPolicy: ", putPolicy);
logger.debug("get uphosts from: ", uphosts_url);
var ie = that.detectIEVersion();
@@ -718,7 +729,15 @@ function QiniuJsSDK() {
// get file key according with the user passed options
var getFileKey = function(up, file, func) {
- // TODO: save_key can read from scope of token
+ // WARNING
+ // When you set the key in putPolicy by "scope": "bucket:key"
+ // You should understand the risk of override a file in the bucket
+ // So the code below that automatically get key from uptoken has been commented
+ // var putPolicy = getPutPolicy(that.token)
+ // if (putPolicy.key) {
+ // logger.debug("key is defined in putPolicy.scope: ", putPolicy.key)
+ // return putPolicy.key
+ // }
var key = '',
unique_names = false;
if (!op.save_key) {
@@ -923,7 +942,6 @@ function QiniuJsSDK() {
}
}
-
up.setOption({
'url': qiniuUploadUrl,
'multipart': true,