(function(n,t){typeof exports=="object"&&typeof module!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(this,function(){"use strict";function f(n){var t=this.constructor;return this.then(function(i){return t.resolve(n()).then(function(){return i})},function(i){return t.resolve(n()).then(function(){return t.reject(i)})})}function h(){}function c(n,t){return function(){n.apply(t,arguments)}}function n(t){if(!(this instanceof n))throw new TypeError("Promises must be constructed via new");if(typeof t!="function")throw new TypeError("not a function");this._state=0;this._handled=!1;this._value=undefined;this._deferreds=[];o(t,this)}function e(i,u){while(i._state===3)i=i._value;if(i._state===0){i._deferreds.push(u);return}i._handled=!0;n._immediateFn(function(){var n=i._state===1?u.onFulfilled:u.onRejected,f;if(n===null){(i._state===1?r:t)(u.promise,i._value);return}try{f=n(i._value)}catch(e){t(u.promise,e);return}r(u.promise,f)})}function r(i,r){try{if(r===i)throw new TypeError("A promise cannot be resolved with itself.");if(r&&(typeof r=="object"||typeof r=="function")){var f=r.then;if(r instanceof n){i._state=3;i._value=r;u(i);return}if(typeof f=="function"){o(c(f,r),i);return}}i._state=1;i._value=r;u(i)}catch(e){t(i,e)}}function t(n,t){n._state=2;n._value=t;u(n)}function u(t){t._state===2&&t._deferreds.length===0&&n._immediateFn(function(){t._handled||n._unhandledRejectionFn(t._value)});for(var i=0,r=t._deferreds.length;i<r;i++)e(t,t._deferreds[i]);t._deferreds=null}function l(n,t,i){this.onFulfilled=typeof n=="function"?n:null;this.onRejected=typeof t=="function"?t:null;this.promise=i}function o(n,i){var u=!1;try{n(function(n){u||(u=!0,r(i,n))},function(n){u||(u=!0,t(i,n))})}catch(f){if(u)return;u=!0;t(i,f)}}var s=setTimeout,i;n.prototype["catch"]=function(n){return this.then(null,n)};n.prototype.then=function(n,t){var i=new this.constructor(h);return e(this,new l(n,t,i)),i};n.prototype["finally"]=f;n.all=function(t){return new n(function(n,i){function e(t,u){try{if(u&&(typeof u=="object"||typeof u=="function")){var o=u.then;if(typeof o=="function"){o.call(u,function(n){e(t,n)},i);return}}r[t]=u;--f==0&&n(r)}catch(s){i(s)}}var r,f,u;if(!t||typeof t.length=="undefined")throw new TypeError("Promise.all accepts an array");if(r=Array.prototype.slice.call(t),r.length===0)return n([]);for(f=r.length,u=0;u<r.length;u++)e(u,r[u])})};n.resolve=function(t){return t&&typeof t=="object"&&t.constructor===n?t:new n(function(n){n(t)})};n.reject=function(t){return new n(function(n,i){i(t)})};n.race=function(t){return new n(function(n,i){for(var r=0,u=t.length;r<u;r++)t[r].then(n,i)})};n._immediateFn=typeof setImmediate=="function"&&function(n){setImmediate(n)}||function(n){s(n,0)};n._unhandledRejectionFn=function(n){typeof console!="undefined"&&console&&console.warn("Possible Unhandled Promise Rejection:",n)};i=function(){if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global;throw new Error("unable to locate global object");}();"Promise"in i?i.Promise.prototype["finally"]||(i.Promise.prototype["finally"]=f):i.Promise=n}),function(n){"use strict";function u(n){if(typeof n!="string"&&(n=String(n)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(n))throw new TypeError("Invalid character in header field name");return n.toLowerCase()}function s(n){return typeof n!="string"&&(n=String(n)),n}function e(n){var t={next:function(){var t=n.shift();return{done:t===undefined,value:t}}};return i.iterable&&(t[Symbol.iterator]=function(){return t}),t}function t(n){this.map={};n instanceof t?n.forEach(function(n,t){this.append(t,n)},this):n&&Object.getOwnPropertyNames(n).forEach(function(t){this.append(t,n[t])},this)}function o(n){if(n.bodyUsed)return Promise.reject(new TypeError("Already read"));n.bodyUsed=!0}function h(n){return new Promise(function(t,i){n.onload=function(){t(n.result)};n.onerror=function(){i(n.error)}})}function b(n){var t=new FileReader,i=h(t);return t.readAsArrayBuffer(n),i}function k(n){var t=new FileReader,i=h(t);return t.readAsText(n),i}function c(n){if(n.slice)return n.slice(0);var t=new Uint8Array(n.byteLength);return t.set(new Uint8Array(n)),t.buffer}function l(){return this.bodyUsed=!1,this._initBody=function(n){if(this._bodyInit=n,n)if(typeof n=="string")this._bodyText=n;else if(i.blob&&Blob.prototype.isPrototypeOf(n))this._bodyBlob=n;else if(i.formData&&FormData.prototype.isPrototypeOf(n))this._bodyFormData=n;else if(i.searchParams&&URLSearchParams.prototype.isPrototypeOf(n))this._bodyText=n.toString();else if(i.arrayBuffer&&i.blob&&p(n))this._bodyArrayBuffer=c(n.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else if(i.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(n)||w(n)))this._bodyArrayBuffer=c(n);else throw new Error("unsupported BodyInit type");else this._bodyText="";this.headers.get("content-type")||(typeof n=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):i.searchParams&&URLSearchParams.prototype.isPrototypeOf(n)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},i.blob&&(this.blob=function(){var n=o(this);if(n)return n;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");else return Promise.resolve(new Blob([this._bodyText]))}),this.text=function(){var n=o(this),t,i;if(n)return n;if(this._bodyBlob)return k(this._bodyBlob);if(this._bodyArrayBuffer)return t=new Uint8Array(this._bodyArrayBuffer),i=String.fromCharCode.apply(null,t),Promise.resolve(i);if(this._bodyFormData)throw new Error("could not read FormData body as text");else return Promise.resolve(this._bodyText)},i.arrayBuffer&&(this.arrayBuffer=function(){return this._bodyArrayBuffer?o(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(b)}),i.formData&&(this.formData=function(){return this.text().then(g)}),this.json=function(){return this.text().then(JSON.parse)},this}function d(n){var t=n.toUpperCase();return a.indexOf(t)>-1?t:n}function f(n,i){i=i||{};var r=i.body;if(typeof n=="string")this.url=n;else{if(n.bodyUsed)throw new TypeError("Already read");this.url=n.url;this.credentials=n.credentials;i.headers||(this.headers=new t(n.headers));this.method=n.method;this.mode=n.mode;r||n._bodyInit==null||(r=n._bodyInit,n.bodyUsed=!0)}if(this.credentials=i.credentials||this.credentials||"omit",(i.headers||!this.headers)&&(this.headers=new t(i.headers)),this.method=d(i.method||this.method||"GET"),this.mode=i.mode||this.mode||null,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function g(n){var t=new FormData;return n.trim().split("&").forEach(function(n){if(n){var i=n.split("="),r=i.shift().replace(/\+/g," "),u=i.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(u))}}),t}function nt(n){var i=new t;return n.split("\r\n").forEach(function(n){var t=n.split(":"),r=t.shift().trim(),u;r&&(u=t.join(":").trim(),i.append(r,u))}),i}function r(n,i){i||(i={});this.type="default";this.status="status"in i?i.status:200;this.ok=this.status>=200&&this.status<300;this.statusText="statusText"in i?i.statusText:"OK";this.headers=new t(i.headers);this.url=i.url||"";this._initBody(n)}var i,a,v;if(!n.fetch){if(i={searchParams:"URLSearchParams"in n,iterable:"Symbol"in n&&"iterator"in Symbol,blob:"FileReader"in n&&"Blob"in n&&function(){try{return new Blob,!0}catch(n){return!1}}(),formData:"FormData"in n,arrayBuffer:"ArrayBuffer"in n},i.arrayBuffer)var y=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=function(n){return n&&DataView.prototype.isPrototypeOf(n)},w=ArrayBuffer.isView||function(n){return n&&y.indexOf(Object.prototype.toString.call(n))>-1};t.prototype.append=function(n,t){n=u(n);t=s(t);var i=this.map[n];this.map[n]=i?i+","+t:t};t.prototype["delete"]=function(n){delete this.map[u(n)]};t.prototype.get=function(n){return n=u(n),this.has(n)?this.map[n]:null};t.prototype.has=function(n){return this.map.hasOwnProperty(u(n))};t.prototype.set=function(n,t){this.map[u(n)]=s(t)};t.prototype.forEach=function(n,t){for(var i in this.map)this.map.hasOwnProperty(i)&&n.call(t,this.map[i],i,this)};t.prototype.keys=function(){var n=[];return this.forEach(function(t,i){n.push(i)}),e(n)};t.prototype.values=function(){var n=[];return this.forEach(function(t){n.push(t)}),e(n)};t.prototype.entries=function(){var n=[];return this.forEach(function(t,i){n.push([i,t])}),e(n)};i.iterable&&(t.prototype[Symbol.iterator]=t.prototype.entries);a=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];f.prototype.clone=function(){return new f(this,{body:this._bodyInit})};l.call(f.prototype);l.call(r.prototype);r.prototype.clone=function(){return new r(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new t(this.headers),url:this.url})};r.error=function(){var n=new r(null,{status:0,statusText:""});return n.type="error",n};v=[301,302,303,307,308];r.redirect=function(n,t){if(v.indexOf(t)===-1)throw new RangeError("Invalid status code");return new r(null,{status:t,headers:{location:n}})};n.Headers=t;n.Request=f;n.Response=r;n.fetch=function(n,t){return new Promise(function(u,e){var s=new f(n,t),o=new XMLHttpRequest;o.onload=function(){var n={status:o.status,statusText:o.statusText,headers:nt(o.getAllResponseHeaders()||"")},t;n.url="responseURL"in o?o.responseURL:n.headers.get("X-Request-URL");t="response"in o?o.response:o.responseText;u(new r(t,n))};o.onerror=function(){e(new TypeError("Network request failed"))};o.ontimeout=function(){e(new TypeError("Network request failed"))};o.open(s.method,s.url,!0);s.credentials==="include"&&(o.withCredentials=!0);"responseType"in o&&i.blob&&(o.responseType="blob");s.headers.forEach(function(n,t){o.setRequestHeader(t,n)});o.send(typeof s._bodyInit=="undefined"?null:s._bodyInit)})};n.fetch.polyfill=!0}}(typeof self!="undefined"?self:this)