{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///lrz.all.bundle.js","webpack:///webpack/bootstrap abd039b38ea6f53efda0?6681","webpack:///./src/lrz.all.js","webpack:///src/lib/Promise.js?0bd1","webpack:///./~/timers-browserify/main.js?b088","webpack:///./~/process/browser.js?82e4","webpack:///src/lib/Blob.FormData.shim.js?fc98","webpack:///src/lib/exif.js?b270","webpack:///src/lib/megapix-image.js?f828","webpack:///src/lib/jpeg_encoder_basic.js?1bcc","webpack:///src/lrz.js"],"names":["root","factory","exports","module","define","amd","a","i","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","setImmediate","bind","fn","thisArg","apply","arguments","Promise","TypeError","_state","_value","_deferreds","doResolve","resolve","reject","handle","deferred","me","push","asap","cb","onFulfilled","onRejected","ret","e","newValue","then","finale","len","length","Handler","done","value","reason","ex","setTimeout","isArray","Array","Object","prototype","toString","all","args","slice","res","val","remaining","constructor","race","values","_setImmediateFn","always","callback","clearImmediate","Timeout","clearFn","_id","_clearFn","nextTick","Function","immediateIds","nextImmediateId","window","clearTimeout","setInterval","clearInterval","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","run","Item","fun","array","noop","process","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","Error","cwd","chdir","dir","umask","hasFormDataBug","bCheck","navigator","userAgent","indexOf","vendor","match","pop","test","FormDataShim","o","parts","boundary","join","Date","Math","random","oldSend","XMLHttpRequest","send","getParts","append","filename","Blob","type","fr","data","oXHR","BlobConstructor","FileReader","onload","result","onerror","err","readAsArrayBuffer","setRequestHeader","opts","bb","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","forEach","getBlob","undefined","FormData","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","imageHasData","img","base64ToArrayBuffer","base64","contentType","replace","binary","atob","buffer","ArrayBuffer","view","Uint8Array","charCodeAt","objectURLToBlob","url","http","open","responseType","status","response","getImageData","handleBinaryFile","binFile","findEXIFinJPEG","iptcdata","findIPTCinJPEG","exifdata","src","arrayBuffer","fileReader","target","blob","File","debug","console","log","byteLength","file","dataView","DataView","getUint8","marker","offset","readEXIFData","getUint16","isFieldSegmentStart","nameHeaderLength","startOffset","sectionLength","readIPTCData","fieldValue","fieldName","dataSize","segmentType","segmentSize","segmentStartPos","IptcFieldMap","getInt16","getStringFromDB","hasOwnProperty","readTags","tiffStart","dirStart","strings","bigEnd","entryOffset","tag","entries","tags","readTagValue","vals","n","numerator","denominator","numValues","getUint32","valueOffset","Number","getInt32","start","outstr","String","fromCharCode","exifData","gpsData","tiffOffset","firstIFDOffset","TiffTags","ExifIFDPointer","ExifTags","StringValues","Components","GPSInfoIFDPointer","GPSTags","EXIF","obj","EXIFwrapped","Tags",36864,40960,40961,40962,40963,37121,37122,37500,37510,40964,36867,36868,37520,37521,37522,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37396,37386,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,40965,42016,256,257,34665,34853,258,259,262,274,277,284,530,531,282,283,296,273,278,279,513,514,301,318,319,529,532,306,270,271,272,305,315,33432,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,26,27,28,29,30,"ExposureProgram","MeteringMode",255,"LightSource","Flash",31,32,65,69,71,73,77,79,89,93,95,"SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource",120,110,55,80,85,122,105,116,"getData","Image","HTMLImageElement","complete","getTag","getAllTags","pretty","strPretty","readFromBinaryFile","detectSubsampling","iw","naturalWidth","ih","naturalHeight","canvas","document","createElement","width","height","ctx","getContext","drawImage","detectVerticalSquash","sy","ey","py","alpha","ratio","renderImageToDataURL","options","doSquash","renderImageToCanvas","toDataURL","quality","save","transformCoordinate","orientation","subsampled","d","tmpCanvas","tmpCtx","vertSquashRatio","dw","ceil","dh","dy","sx","dx","clearRect","restore","translate","scale","rotate","PI","MegaPixImage","srcImage","URL","createObjectURL","webkitURL","_this","listeners","imageLoadListeners","render","srcLength","imgWidth","imgHeight","maxWidth","maxHeight","opt","k","tagName","toLowerCase","onrender","JPEGEncoder","l","M","ag","af","ae","aj","O","ah","ad","ai","K","ac","ab","ak","aa","Z","q","W","u","g","h","v","Y","G","w","E","T","J","B","z","V","C","X","t","F","j","N","aZ","ap","aL","aK","aJ","aI","aH","aD","aC","aB","aR","aN","aq","aY","aO","aX","aP","aU","aQ","aT","aS","an","am","al","ax","at","aw","au","av","ar","az","aG","aW","ao","aV","ay","aF","aM","a1","a0","aA","aE","P","b","r","D","H","I","L","S","y","R","x","floor","Q","getTime","round","A","f","U","encode","displayName","btoa","Lrz","that","defaults","init","getJsDir","script","filter","scripts","substr","lastIndexOf","dataURItoBlob","dataURI","byteString","split","unescape","mimeString","ia","BlobFormDataShim","exif","UA","ISOldIOS","exec","isOldAndroid","oldIOS","oldAndroid","iOS","android","mQQBrowser","fileIsString","fileIsBase64","fileName","_getBase64","formData","size","fileLen","base64Len","origin","revokeObjectURL","crossOrigin","resize","_getResize","fillStyle","fillRect","_createBase64ForOldIOS","_createBase64","__WEBPACK_AMD_REQUIRE_ARRAY__","mpImg","encoder","lrz"],"mappings":"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","file":"lrz.all.bundle.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t__webpack_require__(6);\n\t__webpack_require__(7);\n\t\n\tmodule.exports = __webpack_require__(8);\n\t\n\t\n\t/**\n\t *\n\t *    ┏┓   ┏┓\n\t *   ┏┛┻━━━┛┻┓\n\t *   ┃       ┃\n\t *   ┃   ━   ┃\n\t *   ┃ ┳┛ ┗┳ ┃\n\t *   ┃       ┃\n\t *   ┃   ┻   ┃\n\t *   ┃       ┃\n\t *   ┗━┓   ┏━┛Code is far away from bug with the animal protecting\n\t *     ┃   ┃ 神兽保佑,代码无bug\n\t *     ┃   ┃\n\t *     ┃   ┗━━━┓\n\t *     ┃      ┣┓\n\t *     ┃     ┏┛\n\t *     ┗┓┓┏━┳┓┏┛\n\t *      ┃┫┫ ┃┫┫\n\t *      ┗┻┛ ┗┻┛\n\t *\n\t */\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate) {(function (root) {\n\t\n\t // Use polyfill for setImmediate for performance gains\n\t var asap = (typeof setImmediate === 'function' && setImmediate) ||\n\t function (fn) {\n\t setTimeout(fn, 1);\n\t };\n\t\n\t // Polyfill for Function.prototype.bind\n\t function bind (fn, thisArg) {\n\t return function () {\n\t fn.apply(thisArg, arguments);\n\t }\n\t }\n\t\n\t var isArray = Array.isArray || function (value) {\n\t return Object.prototype.toString.call(value) === \"[object Array]\"\n\t };\n\t\n\t function Promise (fn) {\n\t if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n\t if (typeof fn !== 'function') throw new TypeError('not a function');\n\t this._state = null;\n\t this._value = null;\n\t this._deferreds = []\n\t\n\t doResolve(fn, bind(resolve, this), bind(reject, this))\n\t }\n\t\n\t function handle (deferred) {\n\t var me = this;\n\t if (this._state === null) {\n\t this._deferreds.push(deferred);\n\t return\n\t }\n\t asap(function () {\n\t var cb = me._state ? deferred.onFulfilled : deferred.onRejected\n\t if (cb === null) {\n\t (me._state ? deferred.resolve : deferred.reject)(me._value);\n\t return;\n\t }\n\t var ret;\n\t try {\n\t ret = cb(me._value);\n\t }\n\t catch (e) {\n\t deferred.reject(e);\n\t return;\n\t }\n\t deferred.resolve(ret);\n\t })\n\t }\n\t\n\t function resolve (newValue) {\n\t try { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t if (newValue === this) throw new TypeError('A promise cannot be resolved with itself.');\n\t if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n\t var then = newValue.then;\n\t if (typeof then === 'function') {\n\t doResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n\t return;\n\t }\n\t }\n\t this._state = true;\n\t this._value = newValue;\n\t finale.call(this);\n\t } catch (e) {\n\t reject.call(this, e);\n\t }\n\t }\n\t\n\t function reject (newValue) {\n\t this._state = false;\n\t this._value = newValue;\n\t finale.call(this);\n\t }\n\t\n\t function finale () {\n\t for (var i = 0, len = this._deferreds.length; i < len; i++) {\n\t handle.call(this, this._deferreds[i]);\n\t }\n\t this._deferreds = null;\n\t }\n\t\n\t function Handler (onFulfilled, onRejected, resolve, reject) {\n\t this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t this.resolve = resolve;\n\t this.reject = reject;\n\t }\n\t\n\t /**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\t function doResolve (fn, onFulfilled, onRejected) {\n\t var done = false;\n\t try {\n\t fn(function (value) {\n\t if (done) return;\n\t done = true;\n\t onFulfilled(value);\n\t }, function (reason) {\n\t if (done) return;\n\t done = true;\n\t onRejected(reason);\n\t })\n\t } catch (ex) {\n\t if (done) return;\n\t done = true;\n\t onRejected(ex);\n\t }\n\t }\n\t\n\t Promise.prototype['catch'] = function (onRejected) {\n\t return this.then(null, onRejected);\n\t };\n\t\n\t Promise.prototype.then = function (onFulfilled, onRejected) {\n\t var me = this;\n\t return new Promise(function (resolve, reject) {\n\t handle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n\t })\n\t };\n\t\n\t Promise.all = function () {\n\t var args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n\t\n\t return new Promise(function (resolve, reject) {\n\t if (args.length === 0) return resolve([]);\n\t var remaining = args.length;\n\t\n\t function res (i, val) {\n\t try {\n\t if (val && (typeof val === 'object' || typeof val === 'function')) {\n\t var then = val.then;\n\t if (typeof then === 'function') {\n\t then.call(val, function (val) {\n\t res(i, val)\n\t }, reject);\n\t return;\n\t }\n\t }\n\t args[i] = val;\n\t if (--remaining === 0) {\n\t resolve(args);\n\t }\n\t } catch (ex) {\n\t reject(ex);\n\t }\n\t }\n\t\n\t for (var i = 0; i < args.length; i++) {\n\t res(i, args[i]);\n\t }\n\t });\n\t };\n\t\n\t Promise.resolve = function (value) {\n\t if (value && typeof value === 'object' && value.constructor === Promise) {\n\t return value;\n\t }\n\t\n\t return new Promise(function (resolve) {\n\t resolve(value);\n\t });\n\t };\n\t\n\t Promise.reject = function (value) {\n\t return new Promise(function (resolve, reject) {\n\t reject(value);\n\t });\n\t };\n\t\n\t Promise.race = function (values) {\n\t return new Promise(function (resolve, reject) {\n\t for (var i = 0, len = values.length; i < len; i++) {\n\t values[i].then(resolve, reject);\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Set the immediate function to execute callbacks\n\t * @param fn {function} Function to execute\n\t * @private\n\t */\n\t Promise._setImmediateFn = function _setImmediateFn (fn) {\n\t asap = fn;\n\t };\n\t\n\t\n\t Promise.prototype.always = function (callback) {\n\t var constructor = this.constructor;\n\t\n\t return this.then(function (value) {\n\t return constructor.resolve(callback()).then(function () {\n\t return value;\n\t });\n\t }, function (reason) {\n\t return constructor.resolve(callback()).then(function () {\n\t throw reason;\n\t });\n\t });\n\t };\n\t\n\t if (typeof module !== 'undefined' && module.exports) {\n\t module.exports = Promise;\n\t } else if (!root.Promise) {\n\t root.Promise = Promise;\n\t }\n\t\n\t})(this);\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2).setImmediate))\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(3).nextTick;\n\tvar apply = Function.prototype.apply;\n\tvar slice = Array.prototype.slice;\n\tvar immediateIds = {};\n\tvar nextImmediateId = 0;\n\t\n\t// DOM APIs, for completeness\n\t\n\texports.setTimeout = function() {\n\t return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n\t};\n\texports.setInterval = function() {\n\t return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n\t};\n\texports.clearTimeout =\n\texports.clearInterval = function(timeout) { timeout.close(); };\n\t\n\tfunction Timeout(id, clearFn) {\n\t this._id = id;\n\t this._clearFn = clearFn;\n\t}\n\tTimeout.prototype.unref = Timeout.prototype.ref = function() {};\n\tTimeout.prototype.close = function() {\n\t this._clearFn.call(window, this._id);\n\t};\n\t\n\t// Does not start the time, just sets up the members needed.\n\texports.enroll = function(item, msecs) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = msecs;\n\t};\n\t\n\texports.unenroll = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = -1;\n\t};\n\t\n\texports._unrefActive = exports.active = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t\n\t var msecs = item._idleTimeout;\n\t if (msecs >= 0) {\n\t item._idleTimeoutId = setTimeout(function onTimeout() {\n\t if (item._onTimeout)\n\t item._onTimeout();\n\t }, msecs);\n\t }\n\t};\n\t\n\t// That's not how node.js implements it but the exposed api is the same.\n\texports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n\t var id = nextImmediateId++;\n\t var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\t\n\t immediateIds[id] = true;\n\t\n\t nextTick(function onNextTick() {\n\t if (immediateIds[id]) {\n\t // fn.call() is faster so we optimize for the common use-case\n\t // @see http://jsperf.com/call-apply-segu\n\t if (args) {\n\t fn.apply(null, args);\n\t } else {\n\t fn.call(null);\n\t }\n\t // Prevent ids from leaking\n\t exports.clearImmediate(id);\n\t }\n\t });\n\t\n\t return id;\n\t};\n\t\n\texports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n\t delete immediateIds[id];\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2).setImmediate, __webpack_require__(2).clearImmediate))\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = setTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t setTimeout(drainQueue, 0);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t//@source https://xts.so/demo/compress/index.html\n\t\n\t// 早期版本的浏览器需要用BlobBuilder来构造Blob,创建一个通用构造器来兼容早期版本\n\tvar BlobConstructor = ((function () {\n\t try {\n\t new Blob();\n\t return true;\n\t } catch (e) {\n\t return false;\n\t }\n\t})()) ? window.Blob : function (parts, opts) {\n\t var bb = new (\n\t window.BlobBuilder\n\t || window.WebKitBlobBuilder\n\t || window.MSBlobBuilder\n\t || window.MozBlobBuilder\n\t );\n\t parts.forEach(function (p) {\n\t bb.append(p);\n\t });\n\t\n\t return bb.getBlob(opts ? opts.type : undefined);\n\t};\n\t\n\t// Android上的AppleWebKit 534以前的内核存在一个Bug,\n\t// 导致FormData加入一个Blob对象后,上传的文件是0字节\n\tfunction hasFormDataBug () {\n\t var bCheck = ~navigator.userAgent.indexOf('Android')\n\t && ~navigator.vendor.indexOf('Google')\n\t && !~navigator.userAgent.indexOf('Chrome');\n\t\n\t // QQ X5浏览器也有这个BUG\n\t return bCheck && navigator.userAgent.match(/AppleWebKit\\/(\\d+)/).pop() <= 534 || /MQQBrowser/g.test(navigator.userAgent);\n\t}\n\tfunction FormDataShim () {\n\t var\n\t // Store a reference to this\n\t o = this,\n\t\n\t // Data to be sent\n\t parts = [],\n\t\n\t // Boundary parameter for separating the multipart values\n\t boundary = Array(21).join('-') + (+new Date() * (1e16 * Math.random())).toString(36),\n\t\n\t // Store the current XHR send method so we can safely override it\n\t oldSend = XMLHttpRequest.prototype.send;\n\t this.getParts = function () {\n\t return parts.toString();\n\t };\n\t this.append = function (name, value, filename) {\n\t parts.push('--' + boundary + '\\r\\nContent-Disposition: form-data; name=\"' + name + '\"');\n\t\n\t if (value instanceof Blob) {\n\t parts.push('; filename=\"' + (filename || 'blob') + '\"\\r\\nContent-Type: ' + value.type + '\\r\\n\\r\\n');\n\t parts.push(value);\n\t }\n\t else {\n\t parts.push('\\r\\n\\r\\n' + value);\n\t }\n\t parts.push('\\r\\n');\n\t };\n\t\n\t XMLHttpRequest.prototype.send = function (val) {\n\t var fr,\n\t data,\n\t oXHR = this;\n\t\n\t if (val === o) {\n\t // Append the final boundary string\n\t parts.push('--' + boundary + '--\\r\\n');\n\t // Create the blob\n\t data = new BlobConstructor(parts);\n\t\n\t // Set up and read the blob into an array to be sent\n\t fr = new FileReader();\n\t fr.onload = function () {\n\t oldSend.call(oXHR, fr.result);\n\t };\n\t fr.onerror = function (err) {\n\t throw err;\n\t };\n\t fr.readAsArrayBuffer(data);\n\t\n\t // Set the multipart content type and boudary\n\t this.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);\n\t XMLHttpRequest.prototype.send = oldSend;\n\t }\n\t else {\n\t oldSend.call(this, val);\n\t }\n\t };\n\t}\n\t\n\t\n\tmodule.exports = {\n\t Blob : BlobConstructor,\n\t FormData: hasFormDataBug() ? FormDataShim : FormData\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* exif */\n\t(function () {\n\t\n\t var debug = false;\n\t\n\t var root = this;\n\t\n\t var EXIF = function (obj) {\n\t if (obj instanceof EXIF) return obj;\n\t if (!(this instanceof EXIF)) return new EXIF(obj);\n\t this.EXIFwrapped = obj;\n\t };\n\t\n\t if (true) {\n\t if (typeof module !== 'undefined' && module.exports) {\n\t exports = module.exports = EXIF;\n\t }\n\t exports.EXIF = EXIF;\n\t } else {\n\t root.EXIF = EXIF;\n\t }\n\t\n\t var ExifTags = EXIF.Tags = {\n\t\n\t // version tags\n\t 0x9000: \"ExifVersion\", // EXIF version\n\t 0xA000: \"FlashpixVersion\", // Flashpix format version\n\t\n\t // colorspace tags\n\t 0xA001: \"ColorSpace\", // Color space information tag\n\t\n\t // image configuration\n\t 0xA002: \"PixelXDimension\", // Valid width of meaningful image\n\t 0xA003: \"PixelYDimension\", // Valid height of meaningful image\n\t 0x9101: \"ComponentsConfiguration\", // Information about channels\n\t 0x9102: \"CompressedBitsPerPixel\", // Compressed bits per pixel\n\t\n\t // user information\n\t 0x927C: \"MakerNote\", // Any desired information written by the manufacturer\n\t 0x9286: \"UserComment\", // Comments by user\n\t\n\t // related file\n\t 0xA004: \"RelatedSoundFile\", // Name of related sound file\n\t\n\t // date and time\n\t 0x9003: \"DateTimeOriginal\", // Date and time when the original image was generated\n\t 0x9004: \"DateTimeDigitized\", // Date and time when the image was stored digitally\n\t 0x9290: \"SubsecTime\", // Fractions of seconds for DateTime\n\t 0x9291: \"SubsecTimeOriginal\", // Fractions of seconds for DateTimeOriginal\n\t 0x9292: \"SubsecTimeDigitized\", // Fractions of seconds for DateTimeDigitized\n\t\n\t // picture-taking conditions\n\t 0x829A: \"ExposureTime\", // Exposure time (in seconds)\n\t 0x829D: \"FNumber\", // F number\n\t 0x8822: \"ExposureProgram\", // Exposure program\n\t 0x8824: \"SpectralSensitivity\", // Spectral sensitivity\n\t 0x8827: \"ISOSpeedRatings\", // ISO speed rating\n\t 0x8828: \"OECF\", // Optoelectric conversion factor\n\t 0x9201: \"ShutterSpeedValue\", // Shutter speed\n\t 0x9202: \"ApertureValue\", // Lens aperture\n\t 0x9203: \"BrightnessValue\", // Value of brightness\n\t 0x9204: \"ExposureBias\", // Exposure bias\n\t 0x9205: \"MaxApertureValue\", // Smallest F number of lens\n\t 0x9206: \"SubjectDistance\", // Distance to subject in meters\n\t 0x9207: \"MeteringMode\", // Metering mode\n\t 0x9208: \"LightSource\", // Kind of light source\n\t 0x9209: \"Flash\", // Flash status\n\t 0x9214: \"SubjectArea\", // Location and area of main subject\n\t 0x920A: \"FocalLength\", // Focal length of the lens in mm\n\t 0xA20B: \"FlashEnergy\", // Strobe energy in BCPS\n\t 0xA20C: \"SpatialFrequencyResponse\", //\n\t 0xA20E: \"FocalPlaneXResolution\", // Number of pixels in width direction per FocalPlaneResolutionUnit\n\t 0xA20F: \"FocalPlaneYResolution\", // Number of pixels in height direction per FocalPlaneResolutionUnit\n\t 0xA210: \"FocalPlaneResolutionUnit\", // Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution\n\t 0xA214: \"SubjectLocation\", // Location of subject in image\n\t 0xA215: \"ExposureIndex\", // Exposure index selected on camera\n\t 0xA217: \"SensingMethod\", // Image sensor type\n\t 0xA300: \"FileSource\", // Image source (3 == DSC)\n\t 0xA301: \"SceneType\", // Scene type (1 == directly photographed)\n\t 0xA302: \"CFAPattern\", // Color filter array geometric pattern\n\t 0xA401: \"CustomRendered\", // Special processing\n\t 0xA402: \"ExposureMode\", // Exposure mode\n\t 0xA403: \"WhiteBalance\", // 1 = auto white balance, 2 = manual\n\t 0xA404: \"DigitalZoomRation\", // Digital zoom ratio\n\t 0xA405: \"FocalLengthIn35mmFilm\", // Equivalent foacl length assuming 35mm film camera (in mm)\n\t 0xA406: \"SceneCaptureType\", // Type of scene\n\t 0xA407: \"GainControl\", // Degree of overall image gain adjustment\n\t 0xA408: \"Contrast\", // Direction of contrast processing applied by camera\n\t 0xA409: \"Saturation\", // Direction of saturation processing applied by camera\n\t 0xA40A: \"Sharpness\", // Direction of sharpness processing applied by camera\n\t 0xA40B: \"DeviceSettingDescription\", //\n\t 0xA40C: \"SubjectDistanceRange\", // Distance to subject\n\t\n\t // other tags\n\t 0xA005: \"InteroperabilityIFDPointer\",\n\t 0xA420: \"ImageUniqueID\" // Identifier assigned uniquely to each image\n\t };\n\t\n\t var TiffTags = EXIF.TiffTags = {\n\t 0x0100: \"ImageWidth\",\n\t 0x0101: \"ImageHeight\",\n\t 0x8769: \"ExifIFDPointer\",\n\t 0x8825: \"GPSInfoIFDPointer\",\n\t 0xA005: \"InteroperabilityIFDPointer\",\n\t 0x0102: \"BitsPerSample\",\n\t 0x0103: \"Compression\",\n\t 0x0106: \"PhotometricInterpretation\",\n\t 0x0112: \"Orientation\",\n\t 0x0115: \"SamplesPerPixel\",\n\t 0x011C: \"PlanarConfiguration\",\n\t 0x0212: \"YCbCrSubSampling\",\n\t 0x0213: \"YCbCrPositioning\",\n\t 0x011A: \"XResolution\",\n\t 0x011B: \"YResolution\",\n\t 0x0128: \"ResolutionUnit\",\n\t 0x0111: \"StripOffsets\",\n\t 0x0116: \"RowsPerStrip\",\n\t 0x0117: \"StripByteCounts\",\n\t 0x0201: \"JPEGInterchangeFormat\",\n\t 0x0202: \"JPEGInterchangeFormatLength\",\n\t 0x012D: \"TransferFunction\",\n\t 0x013E: \"WhitePoint\",\n\t 0x013F: \"PrimaryChromaticities\",\n\t 0x0211: \"YCbCrCoefficients\",\n\t 0x0214: \"ReferenceBlackWhite\",\n\t 0x0132: \"DateTime\",\n\t 0x010E: \"ImageDescription\",\n\t 0x010F: \"Make\",\n\t 0x0110: \"Model\",\n\t 0x0131: \"Software\",\n\t 0x013B: \"Artist\",\n\t 0x8298: \"Copyright\"\n\t };\n\t\n\t var GPSTags = EXIF.GPSTags = {\n\t 0x0000: \"GPSVersionID\",\n\t 0x0001: \"GPSLatitudeRef\",\n\t 0x0002: \"GPSLatitude\",\n\t 0x0003: \"GPSLongitudeRef\",\n\t 0x0004: \"GPSLongitude\",\n\t 0x0005: \"GPSAltitudeRef\",\n\t 0x0006: \"GPSAltitude\",\n\t 0x0007: \"GPSTimeStamp\",\n\t 0x0008: \"GPSSatellites\",\n\t 0x0009: \"GPSStatus\",\n\t 0x000A: \"GPSMeasureMode\",\n\t 0x000B: \"GPSDOP\",\n\t 0x000C: \"GPSSpeedRef\",\n\t 0x000D: \"GPSSpeed\",\n\t 0x000E: \"GPSTrackRef\",\n\t 0x000F: \"GPSTrack\",\n\t 0x0010: \"GPSImgDirectionRef\",\n\t 0x0011: \"GPSImgDirection\",\n\t 0x0012: \"GPSMapDatum\",\n\t 0x0013: \"GPSDestLatitudeRef\",\n\t 0x0014: \"GPSDestLatitude\",\n\t 0x0015: \"GPSDestLongitudeRef\",\n\t 0x0016: \"GPSDestLongitude\",\n\t 0x0017: \"GPSDestBearingRef\",\n\t 0x0018: \"GPSDestBearing\",\n\t 0x0019: \"GPSDestDistanceRef\",\n\t 0x001A: \"GPSDestDistance\",\n\t 0x001B: \"GPSProcessingMethod\",\n\t 0x001C: \"GPSAreaInformation\",\n\t 0x001D: \"GPSDateStamp\",\n\t 0x001E: \"GPSDifferential\"\n\t };\n\t\n\t var StringValues = EXIF.StringValues = {\n\t ExposureProgram : {\n\t 0: \"Not defined\",\n\t 1: \"Manual\",\n\t 2: \"Normal program\",\n\t 3: \"Aperture priority\",\n\t 4: \"Shutter priority\",\n\t 5: \"Creative program\",\n\t 6: \"Action program\",\n\t 7: \"Portrait mode\",\n\t 8: \"Landscape mode\"\n\t },\n\t MeteringMode : {\n\t 0 : \"Unknown\",\n\t 1 : \"Average\",\n\t 2 : \"CenterWeightedAverage\",\n\t 3 : \"Spot\",\n\t 4 : \"MultiSpot\",\n\t 5 : \"Pattern\",\n\t 6 : \"Partial\",\n\t 255: \"Other\"\n\t },\n\t LightSource : {\n\t 0 : \"Unknown\",\n\t 1 : \"Daylight\",\n\t 2 : \"Fluorescent\",\n\t 3 : \"Tungsten (incandescent light)\",\n\t 4 : \"Flash\",\n\t 9 : \"Fine weather\",\n\t 10 : \"Cloudy weather\",\n\t 11 : \"Shade\",\n\t 12 : \"Daylight fluorescent (D 5700 - 7100K)\",\n\t 13 : \"Day white fluorescent (N 4600 - 5400K)\",\n\t 14 : \"Cool white fluorescent (W 3900 - 4500K)\",\n\t 15 : \"White fluorescent (WW 3200 - 3700K)\",\n\t 17 : \"Standard light A\",\n\t 18 : \"Standard light B\",\n\t 19 : \"Standard light C\",\n\t 20 : \"D55\",\n\t 21 : \"D65\",\n\t 22 : \"D75\",\n\t 23 : \"D50\",\n\t 24 : \"ISO studio tungsten\",\n\t 255: \"Other\"\n\t },\n\t Flash : {\n\t 0x0000: \"Flash did not fire\",\n\t 0x0001: \"Flash fired\",\n\t 0x0005: \"Strobe return light not detected\",\n\t 0x0007: \"Strobe return light detected\",\n\t 0x0009: \"Flash fired, compulsory flash mode\",\n\t 0x000D: \"Flash fired, compulsory flash mode, return light not detected\",\n\t 0x000F: \"Flash fired, compulsory flash mode, return light detected\",\n\t 0x0010: \"Flash did not fire, compulsory flash mode\",\n\t 0x0018: \"Flash did not fire, auto mode\",\n\t 0x0019: \"Flash fired, auto mode\",\n\t 0x001D: \"Flash fired, auto mode, return light not detected\",\n\t 0x001F: \"Flash fired, auto mode, return light detected\",\n\t 0x0020: \"No flash function\",\n\t 0x0041: \"Flash fired, red-eye reduction mode\",\n\t 0x0045: \"Flash fired, red-eye reduction mode, return light not detected\",\n\t 0x0047: \"Flash fired, red-eye reduction mode, return light detected\",\n\t 0x0049: \"Flash fired, compulsory flash mode, red-eye reduction mode\",\n\t 0x004D: \"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",\n\t 0x004F: \"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",\n\t 0x0059: \"Flash fired, auto mode, red-eye reduction mode\",\n\t 0x005D: \"Flash fired, auto mode, return light not detected, red-eye reduction mode\",\n\t 0x005F: \"Flash fired, auto mode, return light detected, red-eye reduction mode\"\n\t },\n\t SensingMethod : {\n\t 1: \"Not defined\",\n\t 2: \"One-chip color area sensor\",\n\t 3: \"Two-chip color area sensor\",\n\t 4: \"Three-chip color area sensor\",\n\t 5: \"Color sequential area sensor\",\n\t 7: \"Trilinear sensor\",\n\t 8: \"Color sequential linear sensor\"\n\t },\n\t SceneCaptureType : {\n\t 0: \"Standard\",\n\t 1: \"Landscape\",\n\t 2: \"Portrait\",\n\t 3: \"Night scene\"\n\t },\n\t SceneType : {\n\t 1: \"Directly photographed\"\n\t },\n\t CustomRendered : {\n\t 0: \"Normal process\",\n\t 1: \"Custom process\"\n\t },\n\t WhiteBalance : {\n\t 0: \"Auto white balance\",\n\t 1: \"Manual white balance\"\n\t },\n\t GainControl : {\n\t 0: \"None\",\n\t 1: \"Low gain up\",\n\t 2: \"High gain up\",\n\t 3: \"Low gain down\",\n\t 4: \"High gain down\"\n\t },\n\t Contrast : {\n\t 0: \"Normal\",\n\t 1: \"Soft\",\n\t 2: \"Hard\"\n\t },\n\t Saturation : {\n\t 0: \"Normal\",\n\t 1: \"Low saturation\",\n\t 2: \"High saturation\"\n\t },\n\t Sharpness : {\n\t 0: \"Normal\",\n\t 1: \"Soft\",\n\t 2: \"Hard\"\n\t },\n\t SubjectDistanceRange: {\n\t 0: \"Unknown\",\n\t 1: \"Macro\",\n\t 2: \"Close view\",\n\t 3: \"Distant view\"\n\t },\n\t FileSource : {\n\t 3: \"DSC\"\n\t },\n\t\n\t Components: {\n\t 0: \"\",\n\t 1: \"Y\",\n\t 2: \"Cb\",\n\t 3: \"Cr\",\n\t 4: \"R\",\n\t 5: \"G\",\n\t 6: \"B\"\n\t }\n\t };\n\t\n\t function addEvent (element, event, handler) {\n\t if (element.addEventListener) {\n\t element.addEventListener(event, handler, false);\n\t } else if (element.attachEvent) {\n\t element.attachEvent(\"on\" + event, handler);\n\t }\n\t }\n\t\n\t function imageHasData (img) {\n\t return !!(img.exifdata);\n\t }\n\t\n\t\n\t function base64ToArrayBuffer (base64, contentType) {\n\t contentType = contentType || base64.match(/^data\\:([^\\;]+)\\;base64,/mi)[1] || ''; // e.g. 'data:image/jpeg;base64,...' => 'image/jpeg'\n\t base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, '');\n\t var binary = atob(base64);\n\t var len = binary.length;\n\t var buffer = new ArrayBuffer(len);\n\t var view = new Uint8Array(buffer);\n\t for (var i = 0; i < len; i++) {\n\t view[i] = binary.charCodeAt(i);\n\t }\n\t return buffer;\n\t }\n\t\n\t function objectURLToBlob (url, callback) {\n\t var http = new XMLHttpRequest();\n\t http.open(\"GET\", url, true);\n\t http.responseType = \"blob\";\n\t http.onload = function (e) {\n\t if (this.status == 200 || this.status === 0) {\n\t callback(this.response);\n\t }\n\t };\n\t http.send();\n\t }\n\t\n\t function getImageData (img, callback) {\n\t function handleBinaryFile (binFile) {\n\t var data = findEXIFinJPEG(binFile);\n\t var iptcdata = findIPTCinJPEG(binFile);\n\t img.exifdata = data || {};\n\t img.iptcdata = iptcdata || {};\n\t if (callback) {\n\t callback.call(img);\n\t }\n\t }\n\t\n\t if (img.src) {\n\t if (/^data\\:/i.test(img.src)) { // Data URI\n\t var arrayBuffer = base64ToArrayBuffer(img.src);\n\t handleBinaryFile(arrayBuffer);\n\t\n\t } else if (/^blob\\:/i.test(img.src)) { // Object URL\n\t var fileReader = new FileReader();\n\t fileReader.onload = function (e) {\n\t handleBinaryFile(e.target.result);\n\t };\n\t objectURLToBlob(img.src, function (blob) {\n\t fileReader.readAsArrayBuffer(blob);\n\t });\n\t } else {\n\t var http = new XMLHttpRequest();\n\t http.onload = function () {\n\t if (this.status == 200 || this.status === 0) {\n\t handleBinaryFile(http.response);\n\t } else {\n\t callback(new Error(\"Could not load image\"));\n\t }\n\t http = null;\n\t };\n\t http.open(\"GET\", img.src, true);\n\t http.responseType = \"arraybuffer\";\n\t http.send(null);\n\t }\n\t } else if (window.FileReader && (img instanceof window.Blob || img instanceof window.File)) {\n\t var fileReader = new FileReader();\n\t fileReader.onload = function (e) {\n\t if (debug) console.log(\"Got file of length \" + e.target.result.byteLength);\n\t handleBinaryFile(e.target.result);\n\t };\n\t\n\t fileReader.readAsArrayBuffer(img);\n\t }\n\t }\n\t\n\t function findEXIFinJPEG (file) {\n\t var dataView = new DataView(file);\n\t\n\t if (debug) console.log(\"Got file of length \" + file.byteLength);\n\t if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n\t if (debug) console.log(\"Not a valid JPEG\");\n\t return false; // not a valid jpeg\n\t }\n\t\n\t var offset = 2,\n\t length = file.byteLength,\n\t marker;\n\t\n\t while (offset < length) {\n\t if (dataView.getUint8(offset) != 0xFF) {\n\t if (debug) console.log(\"Not a valid marker at offset \" + offset + \", found: \" + dataView.getUint8(offset));\n\t return false; // not a valid marker, something is wrong\n\t }\n\t\n\t marker = dataView.getUint8(offset + 1);\n\t if (debug) console.log(marker);\n\t\n\t // we could implement handling for other markers here,\n\t // but we're only looking for 0xFFE1 for EXIF data\n\t\n\t if (marker == 225) {\n\t if (debug) console.log(\"Found 0xFFE1 marker\");\n\t\n\t return readEXIFData(dataView, offset + 4, dataView.getUint16(offset + 2) - 2);\n\t\n\t // offset += 2 + file.getShortAt(offset+2, true);\n\t\n\t } else {\n\t offset += 2 + dataView.getUint16(offset + 2);\n\t }\n\t\n\t }\n\t\n\t }\n\t\n\t function findIPTCinJPEG (file) {\n\t var dataView = new DataView(file);\n\t\n\t if (debug) console.log(\"Got file of length \" + file.byteLength);\n\t if ((dataView.getUint8(0) != 0xFF) || (dataView.getUint8(1) != 0xD8)) {\n\t if (debug) console.log(\"Not a valid JPEG\");\n\t return false; // not a valid jpeg\n\t }\n\t\n\t var offset = 2,\n\t length = file.byteLength;\n\t\n\t\n\t var isFieldSegmentStart = function (dataView, offset) {\n\t return (\n\t dataView.getUint8(offset) === 0x38 &&\n\t dataView.getUint8(offset + 1) === 0x42 &&\n\t dataView.getUint8(offset + 2) === 0x49 &&\n\t dataView.getUint8(offset + 3) === 0x4D &&\n\t dataView.getUint8(offset + 4) === 0x04 &&\n\t dataView.getUint8(offset + 5) === 0x04\n\t );\n\t };\n\t\n\t while (offset < length) {\n\t\n\t if (isFieldSegmentStart(dataView, offset)) {\n\t\n\t // Get the length of the name header (which is padded to an even number of bytes)\n\t var nameHeaderLength = dataView.getUint8(offset + 7);\n\t if (nameHeaderLength % 2 !== 0) nameHeaderLength += 1;\n\t // Check for pre photoshop 6 format\n\t if (nameHeaderLength === 0) {\n\t // Always 4\n\t nameHeaderLength = 4;\n\t }\n\t\n\t var startOffset = offset + 8 + nameHeaderLength;\n\t var sectionLength = dataView.getUint16(offset + 6 + nameHeaderLength);\n\t\n\t return readIPTCData(file, startOffset, sectionLength);\n\t\n\t break;\n\t\n\t }\n\t\n\t\n\t // Not the marker, continue searching\n\t offset++;\n\t\n\t }\n\t\n\t }\n\t\n\t var IptcFieldMap = {\n\t 0x78: 'caption',\n\t 0x6E: 'credit',\n\t 0x19: 'keywords',\n\t 0x37: 'dateCreated',\n\t 0x50: 'byline',\n\t 0x55: 'bylineTitle',\n\t 0x7A: 'captionWriter',\n\t 0x69: 'headline',\n\t 0x74: 'copyright',\n\t 0x0F: 'category'\n\t };\n\t\n\t function readIPTCData (file, startOffset, sectionLength) {\n\t var dataView = new DataView(file);\n\t var data = {};\n\t var fieldValue, fieldName, dataSize, segmentType, segmentSize;\n\t var segmentStartPos = startOffset;\n\t while (segmentStartPos < startOffset + sectionLength) {\n\t if (dataView.getUint8(segmentStartPos) === 0x1C && dataView.getUint8(segmentStartPos + 1) === 0x02) {\n\t segmentType = dataView.getUint8(segmentStartPos + 2);\n\t if (segmentType in IptcFieldMap) {\n\t dataSize = dataView.getInt16(segmentStartPos + 3);\n\t segmentSize = dataSize + 5;\n\t fieldName = IptcFieldMap[segmentType];\n\t fieldValue = getStringFromDB(dataView, segmentStartPos + 5, dataSize);\n\t // Check if we already stored a value with this name\n\t if (data.hasOwnProperty(fieldName)) {\n\t // Value already stored with this name, create multivalue field\n\t if (data[fieldName] instanceof Array) {\n\t data[fieldName].push(fieldValue);\n\t }\n\t else {\n\t data[fieldName] = [data[fieldName], fieldValue];\n\t }\n\t }\n\t else {\n\t data[fieldName] = fieldValue;\n\t }\n\t }\n\t\n\t }\n\t segmentStartPos++;\n\t }\n\t return data;\n\t }\n\t\n\t\n\t function readTags (file, tiffStart, dirStart, strings, bigEnd) {\n\t var entries = file.getUint16(dirStart, !bigEnd),\n\t tags = {},\n\t entryOffset, tag,\n\t i;\n\t\n\t for (i = 0; i < entries; i++) {\n\t entryOffset = dirStart + i * 12 + 2;\n\t tag = strings[file.getUint16(entryOffset, !bigEnd)];\n\t if (!tag && debug) console.log(\"Unknown tag: \" + file.getUint16(entryOffset, !bigEnd));\n\t tags[tag] = readTagValue(file, entryOffset, tiffStart, dirStart, bigEnd);\n\t }\n\t return tags;\n\t }\n\t\n\t\n\t function readTagValue (file, entryOffset, tiffStart, dirStart, bigEnd) {\n\t var type = file.getUint16(entryOffset + 2, !bigEnd),\n\t numValues = file.getUint32(entryOffset + 4, !bigEnd),\n\t valueOffset = file.getUint32(entryOffset + 8, !bigEnd) + tiffStart,\n\t offset,\n\t vals, val, n,\n\t numerator, denominator;\n\t\n\t switch (type) {\n\t case 1: // byte, 8-bit unsigned int\n\t case 7: // undefined, 8-bit byte, value depending on field\n\t if (numValues == 1) {\n\t return file.getUint8(entryOffset + 8, !bigEnd);\n\t } else {\n\t offset = numValues > 4 ? valueOffset : (entryOffset + 8);\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t vals[n] = file.getUint8(offset + n);\n\t }\n\t return vals;\n\t }\n\t\n\t case 2: // ascii, 8-bit byte\n\t offset = numValues > 4 ? valueOffset : (entryOffset + 8);\n\t return getStringFromDB(file, offset, numValues - 1);\n\t\n\t case 3: // short, 16 bit int\n\t if (numValues == 1) {\n\t return file.getUint16(entryOffset + 8, !bigEnd);\n\t } else {\n\t offset = numValues > 2 ? valueOffset : (entryOffset + 8);\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t vals[n] = file.getUint16(offset + 2 * n, !bigEnd);\n\t }\n\t return vals;\n\t }\n\t\n\t case 4: // long, 32 bit int\n\t if (numValues == 1) {\n\t return file.getUint32(entryOffset + 8, !bigEnd);\n\t } else {\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t vals[n] = file.getUint32(valueOffset + 4 * n, !bigEnd);\n\t }\n\t return vals;\n\t }\n\t\n\t case 5: // rational = two long values, first is numerator, second is denominator\n\t if (numValues == 1) {\n\t numerator = file.getUint32(valueOffset, !bigEnd);\n\t denominator = file.getUint32(valueOffset + 4, !bigEnd);\n\t val = new Number(numerator / denominator);\n\t val.numerator = numerator;\n\t val.denominator = denominator;\n\t return val;\n\t } else {\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t numerator = file.getUint32(valueOffset + 8 * n, !bigEnd);\n\t denominator = file.getUint32(valueOffset + 4 + 8 * n, !bigEnd);\n\t vals[n] = new Number(numerator / denominator);\n\t vals[n].numerator = numerator;\n\t vals[n].denominator = denominator;\n\t }\n\t return vals;\n\t }\n\t\n\t case 9: // slong, 32 bit signed int\n\t if (numValues == 1) {\n\t return file.getInt32(entryOffset + 8, !bigEnd);\n\t } else {\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t vals[n] = file.getInt32(valueOffset + 4 * n, !bigEnd);\n\t }\n\t return vals;\n\t }\n\t\n\t case 10: // signed rational, two slongs, first is numerator, second is denominator\n\t if (numValues == 1) {\n\t return file.getInt32(valueOffset, !bigEnd) / file.getInt32(valueOffset + 4, !bigEnd);\n\t } else {\n\t vals = [];\n\t for (n = 0; n < numValues; n++) {\n\t vals[n] = file.getInt32(valueOffset + 8 * n, !bigEnd) / file.getInt32(valueOffset + 4 + 8 * n, !bigEnd);\n\t }\n\t return vals;\n\t }\n\t }\n\t }\n\t\n\t function getStringFromDB (buffer, start, length) {\n\t var outstr = \"\", n;\n\t for (n = start; n < start + length; n++) {\n\t outstr += String.fromCharCode(buffer.getUint8(n));\n\t }\n\t return outstr;\n\t }\n\t\n\t function readEXIFData (file, start) {\n\t if (getStringFromDB(file, start, 4) != \"Exif\") {\n\t if (debug) console.log(\"Not valid EXIF data! \" + getStringFromDB(file, start, 4));\n\t return false;\n\t }\n\t\n\t var bigEnd,\n\t tags, tag,\n\t exifData, gpsData,\n\t tiffOffset = start + 6;\n\t\n\t // test for TIFF validity and endianness\n\t if (file.getUint16(tiffOffset) == 0x4949) {\n\t bigEnd = false;\n\t } else if (file.getUint16(tiffOffset) == 0x4D4D) {\n\t bigEnd = true;\n\t } else {\n\t if (debug) console.log(\"Not valid TIFF data! (no 0x4949 or 0x4D4D)\");\n\t return false;\n\t }\n\t\n\t if (file.getUint16(tiffOffset + 2, !bigEnd) != 0x002A) {\n\t if (debug) console.log(\"Not valid TIFF data! (no 0x002A)\");\n\t return false;\n\t }\n\t\n\t var firstIFDOffset = file.getUint32(tiffOffset + 4, !bigEnd);\n\t\n\t if (firstIFDOffset < 0x00000008) {\n\t if (debug) console.log(\"Not valid TIFF data! (First offset less than 8)\", file.getUint32(tiffOffset + 4, !bigEnd));\n\t return false;\n\t }\n\t\n\t tags = readTags(file, tiffOffset, tiffOffset + firstIFDOffset, TiffTags, bigEnd);\n\t\n\t if (tags.ExifIFDPointer) {\n\t exifData = readTags(file, tiffOffset, tiffOffset + tags.ExifIFDPointer, ExifTags, bigEnd);\n\t for (tag in exifData) {\n\t switch (tag) {\n\t case \"LightSource\" :\n\t case \"Flash\" :\n\t case \"MeteringMode\" :\n\t case \"ExposureProgram\" :\n\t case \"SensingMethod\" :\n\t case \"SceneCaptureType\" :\n\t case \"SceneType\" :\n\t case \"CustomRendered\" :\n\t case \"WhiteBalance\" :\n\t case \"GainControl\" :\n\t case \"Contrast\" :\n\t case \"Saturation\" :\n\t case \"Sharpness\" :\n\t case \"SubjectDistanceRange\" :\n\t case \"FileSource\" :\n\t exifData[tag] = StringValues[tag][exifData[tag]];\n\t break;\n\t\n\t case \"ExifVersion\" :\n\t case \"FlashpixVersion\" :\n\t exifData[tag] = String.fromCharCode(exifData[tag][0], exifData[tag][1], exifData[tag][2], exifData[tag][3]);\n\t break;\n\t\n\t case \"ComponentsConfiguration\" :\n\t exifData[tag] =\n\t StringValues.Components[exifData[tag][0]] +\n\t StringValues.Components[exifData[tag][1]] +\n\t StringValues.Components[exifData[tag][2]] +\n\t StringValues.Components[exifData[tag][3]];\n\t break;\n\t }\n\t tags[tag] = exifData[tag];\n\t }\n\t }\n\t\n\t if (tags.GPSInfoIFDPointer) {\n\t gpsData = readTags(file, tiffOffset, tiffOffset + tags.GPSInfoIFDPointer, GPSTags, bigEnd);\n\t for (tag in gpsData) {\n\t switch (tag) {\n\t case \"GPSVersionID\" :\n\t gpsData[tag] = gpsData[tag][0] +\n\t \".\" + gpsData[tag][1] +\n\t \".\" + gpsData[tag][2] +\n\t \".\" + gpsData[tag][3];\n\t break;\n\t }\n\t tags[tag] = gpsData[tag];\n\t }\n\t }\n\t\n\t return tags;\n\t }\n\t\n\t EXIF.getData = function (img, callback) {\n\t if ((img instanceof Image || img instanceof HTMLImageElement) && !img.complete) return false;\n\t\n\t if (!imageHasData(img)) {\n\t getImageData(img, callback);\n\t } else {\n\t if (callback) {\n\t callback.call(img);\n\t }\n\t }\n\t return true;\n\t }\n\t\n\t EXIF.getTag = function (img, tag) {\n\t if (!imageHasData(img)) return;\n\t return img.exifdata[tag];\n\t }\n\t\n\t EXIF.getAllTags = function (img) {\n\t if (!imageHasData(img)) return {};\n\t var a,\n\t data = img.exifdata,\n\t tags = {};\n\t for (a in data) {\n\t if (data.hasOwnProperty(a)) {\n\t tags[a] = data[a];\n\t }\n\t }\n\t return tags;\n\t }\n\t\n\t EXIF.pretty = function (img) {\n\t if (!imageHasData(img)) return \"\";\n\t var a,\n\t data = img.exifdata,\n\t strPretty = \"\";\n\t for (a in data) {\n\t if (data.hasOwnProperty(a)) {\n\t if (typeof data[a] == \"object\") {\n\t if (data[a] instanceof Number) {\n\t strPretty += a + \" : \" + data[a] + \" [\" + data[a].numerator + \"/\" + data[a].denominator + \"]\\r\\n\";\n\t } else {\n\t strPretty += a + \" : [\" + data[a].length + \" values]\\r\\n\";\n\t }\n\t } else {\n\t strPretty += a + \" : \" + data[a] + \"\\r\\n\";\n\t }\n\t }\n\t }\n\t return strPretty;\n\t }\n\t\n\t EXIF.readFromBinaryFile = function (file) {\n\t return findEXIFinJPEG(file);\n\t }\n\t\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return EXIF;\n\t }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t }\n\t}.call(this));\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n\t * Mega pixel image rendering library for iOS6 Safari\n\t *\n\t * Fixes iOS6 Safari's image file rendering issue for large size image (over mega-pixel),\n\t * which causes unexpected subsampling when drawing it in canvas.\n\t * By using this library, you can safely render the image with proper stretching.\n\t *\n\t * Copyright (c) 2012 Shinichi Tomita \n\t * Released under the MIT license\n\t */\n\t(function () {\n\t\n\t /**\n\t * Detect subsampling in loaded image.\n\t * In iOS, larger images than 2M pixels may be subsampled in rendering.\n\t */\n\t function detectSubsampling (img) {\n\t var iw = img.naturalWidth, ih = img.naturalHeight;\n\t if (iw * ih > 1024 * 1024) { // subsampling may happen over megapixel image\n\t var canvas = document.createElement('canvas');\n\t canvas.width = canvas.height = 1;\n\t var ctx = canvas.getContext('2d');\n\t ctx.drawImage(img, -iw + 1, 0);\n\t // subsampled image becomes half smaller in rendering size.\n\t // check alpha channel value to confirm image is covering edge pixel or not.\n\t // if alpha value is 0 image is not covering, hence subsampled.\n\t return ctx.getImageData(0, 0, 1, 1).data[3] === 0;\n\t } else {\n\t return false;\n\t }\n\t }\n\t\n\t /**\n\t * Detecting vertical squash in loaded image.\n\t * Fixes a bug which squash image vertically while drawing into canvas for some images.\n\t */\n\t function detectVerticalSquash (img, iw, ih) {\n\t var canvas = document.createElement('canvas');\n\t canvas.width = 1;\n\t canvas.height = ih;\n\t var ctx = canvas.getContext('2d');\n\t ctx.drawImage(img, 0, 0);\n\t var data = ctx.getImageData(0, 0, 1, ih).data;\n\t // search image edge pixel position in case it is squashed vertically.\n\t var sy = 0;\n\t var ey = ih;\n\t var py = ih;\n\t while (py > sy) {\n\t var alpha = data[(py - 1) * 4 + 3];\n\t if (alpha === 0) {\n\t ey = py;\n\t } else {\n\t sy = py;\n\t }\n\t py = (ey + sy) >> 1;\n\t }\n\t var ratio = (py / ih);\n\t return (ratio === 0) ? 1 : ratio;\n\t }\n\t\n\t /**\n\t * Rendering image element (with resizing) and get its data URL\n\t */\n\t function renderImageToDataURL (img, options, doSquash) {\n\t var canvas = document.createElement('canvas');\n\t renderImageToCanvas(img, canvas, options, doSquash);\n\t return canvas.toDataURL(\"image/jpeg\", options.quality || 0.8);\n\t }\n\t\n\t /**\n\t * Rendering image element (with resizing) into the canvas element\n\t */\n\t function renderImageToCanvas (img, canvas, options, doSquash) {\n\t var iw = img.naturalWidth, ih = img.naturalHeight;\n\t var width = options.width, height = options.height;\n\t var ctx = canvas.getContext('2d');\n\t ctx.save();\n\t transformCoordinate(canvas, ctx, width, height, options.orientation);\n\t var subsampled = detectSubsampling(img);\n\t if (subsampled) {\n\t iw /= 2;\n\t ih /= 2;\n\t }\n\t var d = 1024; // size of tiling canvas\n\t var tmpCanvas = document.createElement('canvas');\n\t tmpCanvas.width = tmpCanvas.height = d;\n\t var tmpCtx = tmpCanvas.getContext('2d');\n\t var vertSquashRatio = doSquash ? detectVerticalSquash(img, iw, ih) : 1;\n\t var dw = Math.ceil(d * width / iw);\n\t var dh = Math.ceil(d * height / ih / vertSquashRatio);\n\t var sy = 0;\n\t var dy = 0;\n\t while (sy < ih) {\n\t var sx = 0;\n\t var dx = 0;\n\t while (sx < iw) {\n\t tmpCtx.clearRect(0, 0, d, d);\n\t tmpCtx.drawImage(img, -sx, -sy);\n\t ctx.drawImage(tmpCanvas, 0, 0, d, d, dx, dy, dw, dh);\n\t sx += d;\n\t dx += dw;\n\t }\n\t sy += d;\n\t dy += dh;\n\t }\n\t ctx.restore();\n\t tmpCanvas = tmpCtx = null;\n\t }\n\t\n\t /**\n\t * Transform canvas coordination according to specified frame size and orientation\n\t * Orientation value is from EXIF tag\n\t */\n\t function transformCoordinate (canvas, ctx, width, height, orientation) {\n\t switch (orientation) {\n\t case 5:\n\t case 6:\n\t case 7:\n\t case 8:\n\t canvas.width = height;\n\t canvas.height = width;\n\t break;\n\t default:\n\t canvas.width = width;\n\t canvas.height = height;\n\t }\n\t switch (orientation) {\n\t case 2:\n\t // horizontal flip\n\t ctx.translate(width, 0);\n\t ctx.scale(-1, 1);\n\t break;\n\t case 3:\n\t // 180 rotate left\n\t ctx.translate(width, height);\n\t ctx.rotate(Math.PI);\n\t break;\n\t case 4:\n\t // vertical flip\n\t ctx.translate(0, height);\n\t ctx.scale(1, -1);\n\t break;\n\t case 5:\n\t // vertical flip + 90 rotate right\n\t ctx.rotate(0.5 * Math.PI);\n\t ctx.scale(1, -1);\n\t break;\n\t case 6:\n\t // 90 rotate right\n\t ctx.rotate(0.5 * Math.PI);\n\t ctx.translate(0, -height);\n\t break;\n\t case 7:\n\t // horizontal flip + 90 rotate right\n\t ctx.rotate(0.5 * Math.PI);\n\t ctx.translate(width, -height);\n\t ctx.scale(-1, 1);\n\t break;\n\t case 8:\n\t // 90 rotate left\n\t ctx.rotate(-0.5 * Math.PI);\n\t ctx.translate(-width, 0);\n\t break;\n\t default:\n\t break;\n\t }\n\t }\n\t\n\t\n\t /**\n\t * MegaPixImage class\n\t */\n\t function MegaPixImage (srcImage) {\n\t if (window.Blob && srcImage instanceof Blob) {\n\t var img = new Image();\n\t var URL = window.URL && window.URL.createObjectURL ? window.URL :\n\t window.webkitURL && window.webkitURL.createObjectURL ? window.webkitURL :\n\t null;\n\t if (!URL) {\n\t throw Error(\"No createObjectURL function found to create blob url\");\n\t }\n\t img.src = URL.createObjectURL(srcImage);\n\t this.blob = srcImage;\n\t srcImage = img;\n\t }\n\t if (!srcImage.naturalWidth && !srcImage.naturalHeight) {\n\t var _this = this;\n\t srcImage.onload = function () {\n\t var listeners = _this.imageLoadListeners;\n\t if (listeners) {\n\t _this.imageLoadListeners = null;\n\t for (var i = 0, len = listeners.length; i < len; i++) {\n\t listeners[i]();\n\t }\n\t }\n\t };\n\t this.imageLoadListeners = [];\n\t }\n\t this.srcImage = srcImage;\n\t }\n\t\n\t /**\n\t * Rendering megapix image into specified target element\n\t */\n\t MegaPixImage.prototype.render = function (target, options, callback) {\n\t if (this.imageLoadListeners) {\n\t var _this = this;\n\t this.imageLoadListeners.push(function () {\n\t _this.render(target, options, callback);\n\t });\n\t return;\n\t }\n\t options = options || {};\n\t var srcImage = this.srcImage,\n\t src = srcImage.src,\n\t srcLength = src.length,\n\t imgWidth = srcImage.naturalWidth, imgHeight = srcImage.naturalHeight,\n\t width = options.width, height = options.height,\n\t maxWidth = options.maxWidth, maxHeight = options.maxHeight,\n\t doSquash = this.blob && this.blob.type === 'image/jpeg' ||\n\t src.indexOf('data:image/jpeg') === 0 ||\n\t src.indexOf('.jpg') === srcLength - 4 ||\n\t src.indexOf('.jpeg') === srcLength - 5;\n\t if (width && !height) {\n\t height = (imgHeight * width / imgWidth) << 0;\n\t } else if (height && !width) {\n\t width = (imgWidth * height / imgHeight) << 0;\n\t } else {\n\t width = imgWidth;\n\t height = imgHeight;\n\t }\n\t if (maxWidth && width > maxWidth) {\n\t width = maxWidth;\n\t height = (imgHeight * width / imgWidth) << 0;\n\t }\n\t if (maxHeight && height > maxHeight) {\n\t height = maxHeight;\n\t width = (imgWidth * height / imgHeight) << 0;\n\t }\n\t var opt = {width: width, height: height};\n\t for (var k in options) opt[k] = options[k];\n\t\n\t var tagName = target.tagName.toLowerCase();\n\t if (tagName === 'img') {\n\t target.src = renderImageToDataURL(this.srcImage, opt, doSquash);\n\t } else if (tagName === 'canvas') {\n\t renderImageToCanvas(this.srcImage, target, opt, doSquash);\n\t }\n\t if (typeof this.onrender === 'function') {\n\t this.onrender(target);\n\t }\n\t if (callback) {\n\t callback();\n\t }\n\t };\n\t\n\t /**\n\t * Export class to global\n\t */\n\t if (true) {\n\t !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return MegaPixImage;\n\t }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // for AMD loader\n\t } else {\n\t this.MegaPixImage = MegaPixImage;\n\t }\n\t\n\t})();\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tfunction JPEGEncoder (l) {\n\t var o = this;\n\t var s = Math.round;\n\t var k = Math.floor;\n\t var O = new Array(64);\n\t var K = new Array(64);\n\t var d = new Array(64);\n\t var Z = new Array(64);\n\t var u;\n\t var h;\n\t var G;\n\t var T;\n\t var n = new Array(65535);\n\t var m = new Array(65535);\n\t var P = new Array(64);\n\t var S = new Array(64);\n\t var j = [];\n\t var t = 0;\n\t var a = 7;\n\t var A = new Array(64);\n\t var f = new Array(64);\n\t var U = new Array(64);\n\t var e = new Array(256);\n\t var C = new Array(2048);\n\t var x;\n\t var i = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63];\n\t var g = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n\t var c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t var w = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n\t var E = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250];\n\t var v = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n\t var Y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t var J = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n\t var B = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];\n\t\n\t function M (ag) {\n\t var af = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99];\n\t for (var ae = 0; ae < 64; ae++) {\n\t var aj = k((af[ae] * ag + 50) / 100);\n\t if (aj < 1) {\n\t aj = 1\n\t } else {\n\t if (aj > 255) {\n\t aj = 255\n\t }\n\t }\n\t O[i[ae]] = aj\n\t }\n\t var ah = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99];\n\t for (var ad = 0; ad < 64; ad++) {\n\t var ai = k((ah[ad] * ag + 50) / 100);\n\t if (ai < 1) {\n\t ai = 1\n\t } else {\n\t if (ai > 255) {\n\t ai = 255\n\t }\n\t }\n\t K[i[ad]] = ai\n\t }\n\t var ac = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379];\n\t var ab = 0;\n\t for (var ak = 0; ak < 8; ak++) {\n\t for (var aa = 0; aa < 8; aa++) {\n\t d[ab] = (1 / (O[i[ab]] * ac[ak] * ac[aa] * 8));\n\t Z[ab] = (1 / (K[i[ab]] * ac[ak] * ac[aa] * 8));\n\t ab++\n\t }\n\t }\n\t }\n\t\n\t function q (ae, aa) {\n\t var ad = 0;\n\t var ag = 0;\n\t var af = new Array();\n\t for (var ab = 1; ab <= 16; ab++) {\n\t for (var ac = 1; ac <= ae[ab]; ac++) {\n\t af[aa[ag]] = [];\n\t af[aa[ag]][0] = ad;\n\t af[aa[ag]][1] = ab;\n\t ag++;\n\t ad++\n\t }\n\t ad *= 2\n\t }\n\t return af\n\t }\n\t\n\t function W () {\n\t u = q(g, c);\n\t h = q(v, Y);\n\t G = q(w, E);\n\t T = q(J, B)\n\t }\n\t\n\t function z () {\n\t var ac = 1;\n\t var ab = 2;\n\t for (var aa = 1; aa <= 15; aa++) {\n\t for (var ad = ac; ad < ab; ad++) {\n\t m[32767 + ad] = aa;\n\t n[32767 + ad] = [];\n\t n[32767 + ad][1] = aa;\n\t n[32767 + ad][0] = ad\n\t }\n\t for (var ae = -(ab - 1); ae <= -ac; ae++) {\n\t m[32767 + ae] = aa;\n\t n[32767 + ae] = [];\n\t n[32767 + ae][1] = aa;\n\t n[32767 + ae][0] = ab - 1 + ae\n\t }\n\t ac <<= 1;\n\t ab <<= 1\n\t }\n\t }\n\t\n\t function V () {\n\t for (var aa = 0; aa < 256; aa++) {\n\t C[aa] = 19595 * aa;\n\t C[(aa + 256) >> 0] = 38470 * aa;\n\t C[(aa + 512) >> 0] = 7471 * aa + 32768;\n\t C[(aa + 768) >> 0] = -11059 * aa;\n\t C[(aa + 1024) >> 0] = -21709 * aa;\n\t C[(aa + 1280) >> 0] = 32768 * aa + 8421375;\n\t C[(aa + 1536) >> 0] = -27439 * aa;\n\t C[(aa + 1792) >> 0] = -5329 * aa\n\t }\n\t }\n\t\n\t function X (aa) {\n\t var ac = aa[0];\n\t var ab = aa[1] - 1;\n\t while (ab >= 0) {\n\t if (ac & (1 << ab)) {\n\t t |= (1 << a)\n\t }\n\t ab--;\n\t a--;\n\t if (a < 0) {\n\t if (t == 255) {\n\t F(255);\n\t F(0)\n\t } else {\n\t F(t)\n\t }\n\t a = 7;\n\t t = 0\n\t }\n\t }\n\t }\n\t\n\t function F (aa) {\n\t j.push(e[aa])\n\t }\n\t\n\t function p (aa) {\n\t F((aa >> 8) & 255);\n\t F((aa) & 255)\n\t }\n\t\n\t function N (aZ, ap) {\n\t var aL, aK, aJ, aI, aH, aD, aC, aB;\n\t var aN = 0;\n\t var aR;\n\t const aq = 8;\n\t const ai = 64;\n\t for (aR = 0; aR < aq; ++aR) {\n\t aL = aZ[aN];\n\t aK = aZ[aN + 1];\n\t aJ = aZ[aN + 2];\n\t aI = aZ[aN + 3];\n\t aH = aZ[aN + 4];\n\t aD = aZ[aN + 5];\n\t aC = aZ[aN + 6];\n\t aB = aZ[aN + 7];\n\t var aY = aL + aB;\n\t var aO = aL - aB;\n\t var aX = aK + aC;\n\t var aP = aK - aC;\n\t var aU = aJ + aD;\n\t var aQ = aJ - aD;\n\t var aT = aI + aH;\n\t var aS = aI - aH;\n\t var an = aY + aT;\n\t var ak = aY - aT;\n\t var am = aX + aU;\n\t var al = aX - aU;\n\t aZ[aN] = an + am;\n\t aZ[aN + 4] = an - am;\n\t var ax = (al + ak) * 0.707106781;\n\t aZ[aN + 2] = ak + ax;\n\t aZ[aN + 6] = ak - ax;\n\t an = aS + aQ;\n\t am = aQ + aP;\n\t al = aP + aO;\n\t var at = (an - al) * 0.382683433;\n\t var aw = 0.5411961 * an + at;\n\t var au = 1.306562965 * al + at;\n\t var av = am * 0.707106781;\n\t var ah = aO + av;\n\t var ag = aO - av;\n\t aZ[aN + 5] = ag + aw;\n\t aZ[aN + 3] = ag - aw;\n\t aZ[aN + 1] = ah + au;\n\t aZ[aN + 7] = ah - au;\n\t aN += 8\n\t }\n\t aN = 0;\n\t for (aR = 0; aR < aq; ++aR) {\n\t aL = aZ[aN];\n\t aK = aZ[aN + 8];\n\t aJ = aZ[aN + 16];\n\t aI = aZ[aN + 24];\n\t aH = aZ[aN + 32];\n\t aD = aZ[aN + 40];\n\t aC = aZ[aN + 48];\n\t aB = aZ[aN + 56];\n\t var ar = aL + aB;\n\t var aj = aL - aB;\n\t var az = aK + aC;\n\t var ae = aK - aC;\n\t var aG = aJ + aD;\n\t var ac = aJ - aD;\n\t var aW = aI + aH;\n\t var aa = aI - aH;\n\t var ao = ar + aW;\n\t var aV = ar - aW;\n\t var ay = az + aG;\n\t var aF = az - aG;\n\t aZ[aN] = ao + ay;\n\t aZ[aN + 32] = ao - ay;\n\t var af = (aF + aV) * 0.707106781;\n\t aZ[aN + 16] = aV + af;\n\t aZ[aN + 48] = aV - af;\n\t ao = aa + ac;\n\t ay = ac + ae;\n\t aF = ae + aj;\n\t var aM = (ao - aF) * 0.382683433;\n\t var ad = 0.5411961 * ao + aM;\n\t var a1 = 1.306562965 * aF + aM;\n\t var ab = ay * 0.707106781;\n\t var a0 = aj + ab;\n\t var aA = aj - ab;\n\t aZ[aN + 40] = aA + ad;\n\t aZ[aN + 24] = aA - ad;\n\t aZ[aN + 8] = a0 + a1;\n\t aZ[aN + 56] = a0 - a1;\n\t aN++\n\t }\n\t var aE;\n\t for (aR = 0; aR < ai; ++aR) {\n\t aE = aZ[aR] * ap[aR];\n\t P[aR] = (aE > 0) ? ((aE + 0.5) | 0) : ((aE - 0.5) | 0)\n\t }\n\t return P\n\t }\n\t\n\t function b () {\n\t p(65504);\n\t p(16);\n\t F(74);\n\t F(70);\n\t F(73);\n\t F(70);\n\t F(0);\n\t F(1);\n\t F(1);\n\t F(0);\n\t p(1);\n\t p(1);\n\t F(0);\n\t F(0)\n\t }\n\t\n\t function r (aa, ab) {\n\t p(65472);\n\t p(17);\n\t F(8);\n\t p(ab);\n\t p(aa);\n\t F(3);\n\t F(1);\n\t F(17);\n\t F(0);\n\t F(2);\n\t F(17);\n\t F(1);\n\t F(3);\n\t F(17);\n\t F(1)\n\t }\n\t\n\t function D () {\n\t p(65499);\n\t p(132);\n\t F(0);\n\t for (var ab = 0; ab < 64; ab++) {\n\t F(O[ab])\n\t }\n\t F(1);\n\t for (var aa = 0; aa < 64; aa++) {\n\t F(K[aa])\n\t }\n\t }\n\t\n\t function H () {\n\t p(65476);\n\t p(418);\n\t F(0);\n\t for (var ae = 0; ae < 16; ae++) {\n\t F(g[ae + 1])\n\t }\n\t for (var ad = 0; ad <= 11; ad++) {\n\t F(c[ad])\n\t }\n\t F(16);\n\t for (var ac = 0; ac < 16; ac++) {\n\t F(w[ac + 1])\n\t }\n\t for (var ab = 0; ab <= 161; ab++) {\n\t F(E[ab])\n\t }\n\t F(1);\n\t for (var aa = 0; aa < 16; aa++) {\n\t F(v[aa + 1])\n\t }\n\t for (var ah = 0; ah <= 11; ah++) {\n\t F(Y[ah])\n\t }\n\t F(17);\n\t for (var ag = 0; ag < 16; ag++) {\n\t F(J[ag + 1])\n\t }\n\t for (var af = 0; af <= 161; af++) {\n\t F(B[af])\n\t }\n\t }\n\t\n\t function I () {\n\t p(65498);\n\t p(12);\n\t F(3);\n\t F(1);\n\t F(0);\n\t F(2);\n\t F(17);\n\t F(3);\n\t F(17);\n\t F(0);\n\t F(63);\n\t F(0)\n\t }\n\t\n\t function L (ad, aa, al, at, ap) {\n\t var ag = ap[0];\n\t var ab = ap[240];\n\t var ac;\n\t const ar = 16;\n\t const ai = 63;\n\t const ah = 64;\n\t var aq = N(ad, aa);\n\t for (var am = 0; am < ah; ++am) {\n\t S[i[am]] = aq[am]\n\t }\n\t var an = S[0] - al;\n\t al = S[0];\n\t if (an == 0) {\n\t X(at[0])\n\t } else {\n\t ac = 32767 + an;\n\t X(at[m[ac]]);\n\t X(n[ac])\n\t }\n\t var ae = 63;\n\t for (; (ae > 0) && (S[ae] == 0); ae--) {\n\t }\n\t if (ae == 0) {\n\t X(ag);\n\t return al\n\t }\n\t var ao = 1;\n\t var au;\n\t while (ao <= ae) {\n\t var ak = ao;\n\t for (; (S[ao] == 0) && (ao <= ae); ++ao) {\n\t }\n\t var aj = ao - ak;\n\t if (aj >= ar) {\n\t au = aj >> 4;\n\t for (var af = 1; af <= au; ++af) {\n\t X(ab)\n\t }\n\t aj = aj & 15\n\t }\n\t ac = 32767 + S[ao];\n\t X(ap[(aj << 4) + m[ac]]);\n\t X(n[ac]);\n\t ao++\n\t }\n\t if (ae != ai) {\n\t X(ag)\n\t }\n\t return al\n\t }\n\t\n\t function y () {\n\t var ab = String.fromCharCode;\n\t for (var aa = 0; aa < 256; aa++) {\n\t e[aa] = ab(aa)\n\t }\n\t }\n\t\n\t this.encode = function (an, aj, aB) {\n\t var aa = new Date().getTime();\n\t if (aj) {\n\t R(aj)\n\t }\n\t j = new Array();\n\t t = 0;\n\t a = 7;\n\t p(65496);\n\t b();\n\t D();\n\t r(an.width, an.height);\n\t H();\n\t I();\n\t var al = 0;\n\t var aq = 0;\n\t var ao = 0;\n\t t = 0;\n\t a = 7;\n\t this.encode.displayName = \"_encode_\";\n\t var at = an.data;\n\t var ar = an.width;\n\t var aA = an.height;\n\t var ay = ar * 4;\n\t var ai = ar * 3;\n\t var ah, ag = 0;\n\t var am, ax, az;\n\t var ab, ap, ac, af, ae;\n\t while (ag < aA) {\n\t ah = 0;\n\t while (ah < ay) {\n\t ab = ay * ag + ah;\n\t ap = ab;\n\t ac = -1;\n\t af = 0;\n\t for (ae = 0; ae < 64; ae++) {\n\t af = ae >> 3;\n\t ac = (ae & 7) * 4;\n\t ap = ab + (af * ay) + ac;\n\t if (ag + af >= aA) {\n\t ap -= (ay * (ag + 1 + af - aA))\n\t }\n\t if (ah + ac >= ay) {\n\t ap -= ((ah + ac) - ay + 4)\n\t }\n\t am = at[ap++];\n\t ax = at[ap++];\n\t az = at[ap++];\n\t A[ae] = ((C[am] + C[(ax + 256) >> 0] + C[(az + 512) >> 0]) >> 16) - 128;\n\t f[ae] = ((C[(am + 768) >> 0] + C[(ax + 1024) >> 0] + C[(az + 1280) >> 0]) >> 16) - 128;\n\t U[ae] = ((C[(am + 1280) >> 0] + C[(ax + 1536) >> 0] + C[(az + 1792) >> 0]) >> 16) - 128\n\t }\n\t al = L(A, d, al, u, G);\n\t aq = L(f, Z, aq, h, T);\n\t ao = L(U, Z, ao, h, T);\n\t ah += 32\n\t }\n\t ag += 8\n\t }\n\t if (a >= 0) {\n\t var aw = [];\n\t aw[1] = a + 1;\n\t aw[0] = (1 << (a + 1)) - 1;\n\t X(aw)\n\t }\n\t p(65497);\n\t if (aB) {\n\t var av = j.length;\n\t var aC = new Uint8Array(av);\n\t for (var au = 0; au < av; au++) {\n\t aC[au] = j[au].charCodeAt()\n\t }\n\t j = [];\n\t var ak = new Date().getTime() - aa;\n\t return aC\n\t }\n\t var ad = \"data:image/jpeg;base64,\" + btoa(j.join(\"\"));\n\t j = [];\n\t var ak = new Date().getTime() - aa;\n\t return ad\n\t };\n\t function R (ab) {\n\t if (ab <= 0) {\n\t ab = 1\n\t }\n\t if (ab > 100) {\n\t ab = 100\n\t }\n\t if (x == ab) {\n\t return\n\t }\n\t var aa = 0;\n\t if (ab < 50) {\n\t aa = Math.floor(5000 / ab)\n\t } else {\n\t aa = Math.floor(200 - ab * 2)\n\t }\n\t M(aa);\n\t x = ab;\n\t }\n\t\n\t function Q () {\n\t var aa = new Date().getTime();\n\t if (!l) {\n\t l = 50\n\t }\n\t y();\n\t W();\n\t z();\n\t V();\n\t R(l);\n\t var ab = new Date().getTime() - aa;\n\t }\n\t\n\t Q()\n\t}\n\t\n\tmodule.exports = JPEGEncoder;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// 保证按需加载的文件路径正确\n\t__webpack_require__.p = getJsDir('lrz') + '/';\n\twindow.URL = window.URL || window.webkitURL;\n\t\n\tvar Promise = __webpack_require__(1),\n\t BlobFormDataShim = __webpack_require__(4),\n\t exif = __webpack_require__(5);\n\t\n\t\n\tvar UA = (function (userAgent) {\n\t var ISOldIOS = /OS (\\d)_.* like Mac OS X/g.exec(userAgent),\n\t isOldAndroid = /Android (\\d.*?);/g.exec(userAgent) || /Android\\/(\\d.*?) /g.exec(userAgent);\n\t\n\t // 判断设备是否是IOS7以下\n\t // 判断设备是否是android4.5以下\n\t // 判断是否iOS\n\t // 判断是否android\n\t // 判断是否QQ浏览器\n\t return {\n\t oldIOS : ISOldIOS ? +ISOldIOS.pop() < 8 : false,\n\t oldAndroid: isOldAndroid ? +isOldAndroid.pop().substr(0, 3) < 4.5 : false,\n\t iOS : /\\(i[^;]+;( U;)? CPU.+Mac OS X/.test(userAgent),\n\t android : /Android/g.test(userAgent),\n\t mQQBrowser: /MQQBrowser/g.test(userAgent)\n\t }\n\t})(navigator.userAgent);\n\t\n\t\n\tfunction Lrz (file, opts) {\n\t var that = this;\n\t\n\t if (!file) throw new Error('没有收到图片,可能的解决方案:https://github.com/think2011/localResizeIMG/issues/7');\n\t\n\t opts = opts || {};\n\t\n\t that.defaults = {\n\t width : null,\n\t height : null,\n\t fieldName: 'file',\n\t quality : 0.7\n\t };\n\t\n\t that.file = file;\n\t\n\t for (var p in opts) {\n\t if (!opts.hasOwnProperty(p)) continue;\n\t that.defaults[p] = opts[p];\n\t }\n\t\n\t return this.init();\n\t}\n\t\n\tLrz.prototype.init = function () {\n\t var that = this,\n\t file = that.file,\n\t fileIsString = typeof file === 'string',\n\t fileIsBase64 = /^data:/.test(file),\n\t img = new Image(),\n\t canvas = document.createElement('canvas'),\n\t blob = fileIsString ? file : URL.createObjectURL(file);\n\t\n\t that.img = img;\n\t that.blob = blob;\n\t that.canvas = canvas;\n\t\n\t if (fileIsString) {\n\t that.fileName = fileIsBase64 ? 'base64.jpg' : (file.split('/').pop());\n\t } else {\n\t that.fileName = file.name;\n\t }\n\t\n\t if (!document.createElement('canvas').getContext) {\n\t throw new Error('浏览器不支持canvas');\n\t }\n\t\n\t return new Promise(function (resolve, reject) {\n\t img.onerror = function () {\n\t throw new Error('加载图片文件失败');\n\t };\n\t\n\t img.onload = function () {\n\t that._getBase64()\n\t .then(function (base64) {\n\t if (base64.length < 10) reject('生成base64失败');\n\t\n\t return base64;\n\t })\n\t .then(function (base64) {\n\t var formData = null;\n\t\n\t // 压缩文件太大就采用源文件,且使用原生的FormData() @source #55\n\t if (typeof that.file === 'object' && base64.length > that.file.size) {\n\t formData = new FormData();\n\t file = that.file;\n\t } else {\n\t formData = new BlobFormDataShim.FormData();\n\t file = dataURItoBlob(base64);\n\t }\n\t\n\t formData.append(that.defaults.fieldName, file, (that.fileName.replace(/\\..+/g, '.jpg')));\n\t\n\t resolve({\n\t formData : formData,\n\t fileLen : +file.size,\n\t base64 : base64,\n\t base64Len: base64.length,\n\t origin : that.file\n\t });\n\t\n\t // 释放内存\n\t for (var p in that) {\n\t if (!that.hasOwnProperty(p)) continue;\n\t\n\t that[p] = null;\n\t }\n\t URL.revokeObjectURL(that.blob);\n\t });\n\t };\n\t\n\t // 如果传入的是base64在移动端会报错\n\t !fileIsBase64 && (img.crossOrigin = \"*\");\n\t\n\t img.src = blob;\n\t });\n\t};\n\t\n\tLrz.prototype._getBase64 = function () {\n\t var that = this,\n\t img = that.img,\n\t file = that.file,\n\t canvas = that.canvas;\n\t\n\t return new Promise(function (resolve) {\n\t try {\n\t // 传入blob在android4.3以下有bug\n\t exif.getData(typeof file === 'object' ? file : img, function () {\n\t that.orientation = exif.getTag(this, \"Orientation\");\n\t\n\t that.resize = that._getResize();\n\t that.ctx = canvas.getContext('2d');\n\t\n\t canvas.width = that.resize.width;\n\t canvas.height = that.resize.height;\n\t\n\t // 设置为白色背景,jpg是不支持透明的,所以会被默认为canvas默认的黑色背景。\n\t that.ctx.fillStyle = '#fff';\n\t that.ctx.fillRect(0, 0, canvas.width, canvas.height);\n\t\n\t // 根据设备对应处理方式\n\t if (UA.oldIOS) {\n\t that._createBase64ForOldIOS().then(resolve);\n\t }\n\t else {\n\t that._createBase64().then(resolve);\n\t }\n\t });\n\t } catch (err) {\n\t // 这样能解决低内存设备闪退的问题吗?\n\t throw new Error(err);\n\t }\n\t });\n\t};\n\t\n\t\n\tLrz.prototype._createBase64ForOldIOS = function () {\n\t var that = this,\n\t img = that.img,\n\t canvas = that.canvas,\n\t defaults = that.defaults,\n\t orientation = that.orientation;\n\t\n\t return new Promise(function (resolve) {\n\t !/* require */(/* empty */function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(6)]; (function (MegaPixImage) {\n\t var mpImg = new MegaPixImage(img);\n\t\n\t if (\"5678\".indexOf(orientation) > -1) {\n\t mpImg.render(canvas, {\n\t width : canvas.height,\n\t height : canvas.width,\n\t orientation: orientation\n\t });\n\t } else {\n\t mpImg.render(canvas, {\n\t width : canvas.width,\n\t height : canvas.height,\n\t orientation: orientation\n\t });\n\t }\n\t\n\t resolve(canvas.toDataURL('image/jpeg', defaults.quality));\n\t }.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}());\n\t });\n\t};\n\t\n\tLrz.prototype._createBase64 = function () {\n\t var that = this,\n\t resize = that.resize,\n\t img = that.img,\n\t canvas = that.canvas,\n\t ctx = that.ctx,\n\t defaults = that.defaults,\n\t orientation = that.orientation;\n\t\n\t // 调整为正确方向\n\t switch (orientation) {\n\t case 3:\n\t ctx.rotate(180 * Math.PI / 180);\n\t ctx.drawImage(img, -resize.width, -resize.height, resize.width, resize.height);\n\t break;\n\t case 6:\n\t ctx.rotate(90 * Math.PI / 180);\n\t ctx.drawImage(img, 0, -resize.width, resize.height, resize.width);\n\t break;\n\t case 8:\n\t ctx.rotate(270 * Math.PI / 180);\n\t ctx.drawImage(img, -resize.height, 0, resize.height, resize.width);\n\t break;\n\t\n\t case 2:\n\t ctx.translate(resize.width, 0);\n\t ctx.scale(-1, 1);\n\t ctx.drawImage(img, 0, 0, resize.width, resize.height);\n\t break;\n\t case 4:\n\t ctx.translate(resize.width, 0);\n\t ctx.scale(-1, 1);\n\t ctx.rotate(180 * Math.PI / 180);\n\t ctx.drawImage(img, -resize.width, -resize.height, resize.width, resize.height);\n\t break;\n\t case 5:\n\t ctx.translate(resize.width, 0);\n\t ctx.scale(-1, 1);\n\t ctx.rotate(90 * Math.PI / 180);\n\t ctx.drawImage(img, 0, -resize.width, resize.height, resize.width);\n\t break;\n\t case 7:\n\t ctx.translate(resize.width, 0);\n\t ctx.scale(-1, 1);\n\t ctx.rotate(270 * Math.PI / 180);\n\t ctx.drawImage(img, -resize.height, 0, resize.height, resize.width);\n\t break;\n\t\n\t default:\n\t ctx.drawImage(img, 0, 0, resize.width, resize.height);\n\t }\n\t\n\t return new Promise(function (resolve) {\n\t if (UA.oldAndroid || UA.mQQBrowser || !navigator.userAgent) {\n\t !/* require */(/* empty */function() { var __WEBPACK_AMD_REQUIRE_ARRAY__ = [__webpack_require__(7)]; (function (JPEGEncoder) {\n\t var encoder = new JPEGEncoder(),\n\t img = ctx.getImageData(0, 0, canvas.width, canvas.height);\n\t\n\t resolve(encoder.encode(img, defaults.quality * 100));\n\t }.apply(null, __WEBPACK_AMD_REQUIRE_ARRAY__));}())\n\t }\n\t else {\n\t resolve(canvas.toDataURL('image/jpeg', defaults.quality));\n\t }\n\t });\n\t};\n\t\n\tLrz.prototype._getResize = function () {\n\t var that = this,\n\t img = that.img,\n\t defaults = that.defaults,\n\t width = defaults.width,\n\t height = defaults.height,\n\t orientation = that.orientation;\n\t\n\t var ret = {\n\t width : img.width,\n\t height: img.height\n\t };\n\t\n\t if (\"5678\".indexOf(orientation) > -1) {\n\t ret.width = img.height;\n\t ret.height = img.width;\n\t }\n\t\n\t // 如果原图小于设定,采用原图\n\t if (ret.width < width || ret.height < height) {\n\t return ret;\n\t }\n\t\n\t var scale = ret.width / ret.height;\n\t\n\t if (width && height) {\n\t if (scale >= width / height) {\n\t if (ret.width > width) {\n\t ret.width = width;\n\t ret.height = Math.ceil(width / scale);\n\t }\n\t } else {\n\t if (ret.height > height) {\n\t ret.height = height;\n\t ret.width = Math.ceil(height * scale);\n\t }\n\t }\n\t }\n\t else if (width) {\n\t if (width < ret.width) {\n\t ret.width = width;\n\t ret.height = Math.ceil(width / scale);\n\t }\n\t }\n\t else if (height) {\n\t if (height < ret.height) {\n\t ret.width = Math.ceil(height * scale);\n\t ret.height = height;\n\t }\n\t }\n\t\n\t // 超过这个值base64无法生成,在IOS上\n\t while (ret.width >= 3264 || ret.height >= 2448) {\n\t ret.width *= 0.8;\n\t ret.height *= 0.8;\n\t }\n\t\n\t return ret;\n\t};\n\t\n\t/**\n\t * 获取当前js文件所在路径,必须得在代码顶部执行此函数\n\t * @returns {string}\n\t */\n\tfunction getJsDir (src) {\n\t var script = null;\n\t\n\t if (src) {\n\t script = [].filter.call(document.scripts, function (v) {\n\t return v.src.indexOf(src) !== -1;\n\t })[0];\n\t } else {\n\t script = document.scripts[document.scripts.length - 1];\n\t }\n\t\n\t if (!script) return null;\n\t\n\t return script.src.substr(0, script.src.lastIndexOf('/'));\n\t}\n\t\n\t\n\t/**\n\t * 转换成formdata\n\t * @param dataURI\n\t * @returns {*}\n\t *\n\t * @source http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata\n\t */\n\tfunction dataURItoBlob (dataURI) {\n\t // convert base64/URLEncoded data component to raw binary data held in a string\n\t var byteString;\n\t if (dataURI.split(',')[0].indexOf('base64') >= 0)\n\t byteString = atob(dataURI.split(',')[1]);\n\t else\n\t byteString = unescape(dataURI.split(',')[1]);\n\t\n\t // separate out the mime component\n\t var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\t\n\t // write the bytes of the string to a typed array\n\t var ia = new Uint8Array(byteString.length);\n\t for (var i = 0; i < byteString.length; i++) {\n\t ia[i] = byteString.charCodeAt(i);\n\t }\n\t\n\t return new BlobFormDataShim.Blob([ia.buffer], {type: mimeString});\n\t}\n\t\n\twindow.lrz = function (file, opts) {\n\t return new Lrz(file, opts);\n\t};\n\t\n\t// 版本号来自package.json,构建时自动填充\n\twindow.lrz.version = '4.8.35';\n\t\n\tmodule.exports = window.lrz;\n\t\n\t/**\n\t *\n\t *    ┏┓   ┏┓\n\t *   ┏┛┻━━━┛┻┓\n\t *   ┃       ┃\n\t *   ┃   ━   ┃\n\t *   ┃ ┳┛ ┗┳ ┃\n\t *   ┃       ┃\n\t *   ┃   ┻   ┃\n\t *   ┃       ┃\n\t *   ┗━┓   ┏━┛Code is far away from bug with the animal protecting\n\t *     ┃   ┃ 神兽保佑,代码无bug\n\t *     ┃   ┃\n\t *     ┃   ┗━━━┓\n\t *     ┃      ┣┓\n\t *     ┃     ┏┛\n\t *     ┗┓┓┏━┳┓┏┛\n\t *      ┃┫┫ ┃┫┫\n\t *      ┗┻┛ ┗┻┛\n\t *\n\t */\n\t\n\t\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** lrz.all.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap abd039b38ea6f53efda0\n **/","require('megapix-image');\nrequire('jpeg_encoder_basic');\n\nmodule.exports = require('lrz');\n\n\n/**\n *\n *    ┏┓   ┏┓\n *   ┏┛┻━━━┛┻┓\n *   ┃       ┃\n *   ┃   ━   ┃\n *   ┃ ┳┛ ┗┳ ┃\n *   ┃       ┃\n *   ┃   ┻   ┃\n *   ┃       ┃\n *   ┗━┓   ┏━┛Code is far away from bug with the animal protecting\n *     ┃   ┃ 神兽保佑,代码无bug\n *     ┃   ┃\n *     ┃   ┗━━━┓\n *     ┃      ┣┓\n *     ┃     ┏┛\n *     ┗┓┓┏━┳┓┏┛\n *      ┃┫┫ ┃┫┫\n *      ┗┻┛ ┗┻┛\n *\n */\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/lrz.all.js\n ** module id = 0\n ** module chunks = 3\n **/","null\n\n\n/** WEBPACK FOOTER **\n ** src/lib/Promise.js\n **/","var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/timers-browserify/main.js\n ** module id = 2\n ** module chunks = 0 3\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/process/browser.js\n ** module id = 3\n ** module chunks = 0 3\n **/","//@source https://xts.so/demo/compress/index.html\n\n// 早期版本的浏览器需要用BlobBuilder来构造Blob,创建一个通用构造器来兼容早期版本\nvar BlobConstructor = ((function () {\n try {\n new Blob();\n return true;\n } catch (e) {\n return false;\n }\n})()) ? window.Blob : function (parts, opts) {\n var bb = new (\n window.BlobBuilder\n || window.WebKitBlobBuilder\n || window.MSBlobBuilder\n || window.MozBlobBuilder\n );\n parts.forEach(function (p) {\n bb.append(p);\n });\n\n return bb.getBlob(opts ? opts.type : undefined);\n};\n\n// Android上的AppleWebKit 534以前的内核存在一个Bug,\n// 导致FormData加入一个Blob对象后,上传的文件是0字节\nfunction hasFormDataBug () {\n var bCheck = ~navigator.userAgent.indexOf('Android')\n && ~navigator.vendor.indexOf('Google')\n && !~navigator.userAgent.indexOf('Chrome');\n\n // QQ X5浏览器也有这个BUG\n return bCheck && navigator.userAgent.match(/AppleWebKit\\/(\\d+)/).pop() <= 534 || /MQQBrowser/g.test(navigator.userAgent);\n}\nfunction FormDataShim () {\n var\n // Store a reference to this\n o = this,\n\n // Data to be sent\n parts = [],\n\n // Boundary parameter for separating the multipart values\n boundary = Array(21).join('-') + (+new Date() * (1e16 * Math.random())).toString(36),\n\n // Store the current XHR send method so we can safely override it\n oldSend = XMLHttpRequest.prototype.send;\n this.getParts = function () {\n return parts.toString();\n };\n this.append = function (name, value, filename) {\n parts.push('--' + boundary + '\\r\\nContent-Disposition: form-data; name=\"' + name + '\"');\n\n if (value instanceof Blob) {\n parts.push('; filename=\"' + (filename || 'blob') + '\"\\r\\nContent-Type: ' + value.type + '\\r\\n\\r\\n');\n parts.push(value);\n }\n else {\n parts.push('\\r\\n\\r\\n' + value);\n }\n parts.push('\\r\\n');\n };\n\n XMLHttpRequest.prototype.send = function (val) {\n var fr,\n data,\n oXHR = this;\n\n if (val === o) {\n // Append the final boundary string\n parts.push('--' + boundary + '--\\r\\n');\n // Create the blob\n data = new BlobConstructor(parts);\n\n // Set up and read the blob into an array to be sent\n fr = new FileReader();\n fr.onload = function () {\n oldSend.call(oXHR, fr.result);\n };\n fr.onerror = function (err) {\n throw err;\n };\n fr.readAsArrayBuffer(data);\n\n // Set the multipart content type and boudary\n this.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);\n XMLHttpRequest.prototype.send = oldSend;\n }\n else {\n oldSend.call(this, val);\n }\n };\n}\n\n\nmodule.exports = {\n Blob : BlobConstructor,\n FormData: hasFormDataBug() ? FormDataShim : FormData\n};\n\n\n\n/** WEBPACK FOOTER **\n ** src/lib/Blob.FormData.shim.js\n **/","null\n\n\n/** WEBPACK FOOTER **\n ** src/lib/exif.js\n **/","null\n\n\n/** WEBPACK FOOTER **\n ** src/lib/megapix-image.js\n **/","function JPEGEncoder (l) {\n var o = this;\n var s = Math.round;\n var k = Math.floor;\n var O = new Array(64);\n var K = new Array(64);\n var d = new Array(64);\n var Z = new Array(64);\n var u;\n var h;\n var G;\n var T;\n var n = new Array(65535);\n var m = new Array(65535);\n var P = new Array(64);\n var S = new Array(64);\n var j = [];\n var t = 0;\n var a = 7;\n var A = new Array(64);\n var f = new Array(64);\n var U = new Array(64);\n var e = new Array(256);\n var C = new Array(2048);\n var x;\n var i = [0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63];\n var g = [0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0];\n var c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var w = [0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125];\n var E = [1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, 129, 145, 161, 8, 35, 66, 177, 193, 21, 82, 209, 240, 36, 51, 98, 114, 130, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250];\n var v = [0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0];\n var Y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n var J = [0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119];\n var B = [0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, 129, 8, 20, 66, 145, 161, 177, 193, 9, 35, 51, 82, 240, 21, 98, 114, 209, 10, 22, 36, 52, 225, 37, 241, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, 130, 131, 132, 133, 134, 135, 136, 137, 138, 146, 147, 148, 149, 150, 151, 152, 153, 154, 162, 163, 164, 165, 166, 167, 168, 169, 170, 178, 179, 180, 181, 182, 183, 184, 185, 186, 194, 195, 196, 197, 198, 199, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 226, 227, 228, 229, 230, 231, 232, 233, 234, 242, 243, 244, 245, 246, 247, 248, 249, 250];\n\n function M (ag) {\n var af = [16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24, 40, 57, 69, 56, 14, 17, 22, 29, 51, 87, 80, 62, 18, 22, 37, 56, 68, 109, 103, 77, 24, 35, 55, 64, 81, 104, 113, 92, 49, 64, 78, 87, 103, 121, 120, 101, 72, 92, 95, 98, 112, 100, 103, 99];\n for (var ae = 0; ae < 64; ae++) {\n var aj = k((af[ae] * ag + 50) / 100);\n if (aj < 1) {\n aj = 1\n } else {\n if (aj > 255) {\n aj = 255\n }\n }\n O[i[ae]] = aj\n }\n var ah = [17, 18, 24, 47, 99, 99, 99, 99, 18, 21, 26, 66, 99, 99, 99, 99, 24, 26, 56, 99, 99, 99, 99, 99, 47, 66, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99];\n for (var ad = 0; ad < 64; ad++) {\n var ai = k((ah[ad] * ag + 50) / 100);\n if (ai < 1) {\n ai = 1\n } else {\n if (ai > 255) {\n ai = 255\n }\n }\n K[i[ad]] = ai\n }\n var ac = [1, 1.387039845, 1.306562965, 1.175875602, 1, 0.785694958, 0.5411961, 0.275899379];\n var ab = 0;\n for (var ak = 0; ak < 8; ak++) {\n for (var aa = 0; aa < 8; aa++) {\n d[ab] = (1 / (O[i[ab]] * ac[ak] * ac[aa] * 8));\n Z[ab] = (1 / (K[i[ab]] * ac[ak] * ac[aa] * 8));\n ab++\n }\n }\n }\n\n function q (ae, aa) {\n var ad = 0;\n var ag = 0;\n var af = new Array();\n for (var ab = 1; ab <= 16; ab++) {\n for (var ac = 1; ac <= ae[ab]; ac++) {\n af[aa[ag]] = [];\n af[aa[ag]][0] = ad;\n af[aa[ag]][1] = ab;\n ag++;\n ad++\n }\n ad *= 2\n }\n return af\n }\n\n function W () {\n u = q(g, c);\n h = q(v, Y);\n G = q(w, E);\n T = q(J, B)\n }\n\n function z () {\n var ac = 1;\n var ab = 2;\n for (var aa = 1; aa <= 15; aa++) {\n for (var ad = ac; ad < ab; ad++) {\n m[32767 + ad] = aa;\n n[32767 + ad] = [];\n n[32767 + ad][1] = aa;\n n[32767 + ad][0] = ad\n }\n for (var ae = -(ab - 1); ae <= -ac; ae++) {\n m[32767 + ae] = aa;\n n[32767 + ae] = [];\n n[32767 + ae][1] = aa;\n n[32767 + ae][0] = ab - 1 + ae\n }\n ac <<= 1;\n ab <<= 1\n }\n }\n\n function V () {\n for (var aa = 0; aa < 256; aa++) {\n C[aa] = 19595 * aa;\n C[(aa + 256) >> 0] = 38470 * aa;\n C[(aa + 512) >> 0] = 7471 * aa + 32768;\n C[(aa + 768) >> 0] = -11059 * aa;\n C[(aa + 1024) >> 0] = -21709 * aa;\n C[(aa + 1280) >> 0] = 32768 * aa + 8421375;\n C[(aa + 1536) >> 0] = -27439 * aa;\n C[(aa + 1792) >> 0] = -5329 * aa\n }\n }\n\n function X (aa) {\n var ac = aa[0];\n var ab = aa[1] - 1;\n while (ab >= 0) {\n if (ac & (1 << ab)) {\n t |= (1 << a)\n }\n ab--;\n a--;\n if (a < 0) {\n if (t == 255) {\n F(255);\n F(0)\n } else {\n F(t)\n }\n a = 7;\n t = 0\n }\n }\n }\n\n function F (aa) {\n j.push(e[aa])\n }\n\n function p (aa) {\n F((aa >> 8) & 255);\n F((aa) & 255)\n }\n\n function N (aZ, ap) {\n var aL, aK, aJ, aI, aH, aD, aC, aB;\n var aN = 0;\n var aR;\n const aq = 8;\n const ai = 64;\n for (aR = 0; aR < aq; ++aR) {\n aL = aZ[aN];\n aK = aZ[aN + 1];\n aJ = aZ[aN + 2];\n aI = aZ[aN + 3];\n aH = aZ[aN + 4];\n aD = aZ[aN + 5];\n aC = aZ[aN + 6];\n aB = aZ[aN + 7];\n var aY = aL + aB;\n var aO = aL - aB;\n var aX = aK + aC;\n var aP = aK - aC;\n var aU = aJ + aD;\n var aQ = aJ - aD;\n var aT = aI + aH;\n var aS = aI - aH;\n var an = aY + aT;\n var ak = aY - aT;\n var am = aX + aU;\n var al = aX - aU;\n aZ[aN] = an + am;\n aZ[aN + 4] = an - am;\n var ax = (al + ak) * 0.707106781;\n aZ[aN + 2] = ak + ax;\n aZ[aN + 6] = ak - ax;\n an = aS + aQ;\n am = aQ + aP;\n al = aP + aO;\n var at = (an - al) * 0.382683433;\n var aw = 0.5411961 * an + at;\n var au = 1.306562965 * al + at;\n var av = am * 0.707106781;\n var ah = aO + av;\n var ag = aO - av;\n aZ[aN + 5] = ag + aw;\n aZ[aN + 3] = ag - aw;\n aZ[aN + 1] = ah + au;\n aZ[aN + 7] = ah - au;\n aN += 8\n }\n aN = 0;\n for (aR = 0; aR < aq; ++aR) {\n aL = aZ[aN];\n aK = aZ[aN + 8];\n aJ = aZ[aN + 16];\n aI = aZ[aN + 24];\n aH = aZ[aN + 32];\n aD = aZ[aN + 40];\n aC = aZ[aN + 48];\n aB = aZ[aN + 56];\n var ar = aL + aB;\n var aj = aL - aB;\n var az = aK + aC;\n var ae = aK - aC;\n var aG = aJ + aD;\n var ac = aJ - aD;\n var aW = aI + aH;\n var aa = aI - aH;\n var ao = ar + aW;\n var aV = ar - aW;\n var ay = az + aG;\n var aF = az - aG;\n aZ[aN] = ao + ay;\n aZ[aN + 32] = ao - ay;\n var af = (aF + aV) * 0.707106781;\n aZ[aN + 16] = aV + af;\n aZ[aN + 48] = aV - af;\n ao = aa + ac;\n ay = ac + ae;\n aF = ae + aj;\n var aM = (ao - aF) * 0.382683433;\n var ad = 0.5411961 * ao + aM;\n var a1 = 1.306562965 * aF + aM;\n var ab = ay * 0.707106781;\n var a0 = aj + ab;\n var aA = aj - ab;\n aZ[aN + 40] = aA + ad;\n aZ[aN + 24] = aA - ad;\n aZ[aN + 8] = a0 + a1;\n aZ[aN + 56] = a0 - a1;\n aN++\n }\n var aE;\n for (aR = 0; aR < ai; ++aR) {\n aE = aZ[aR] * ap[aR];\n P[aR] = (aE > 0) ? ((aE + 0.5) | 0) : ((aE - 0.5) | 0)\n }\n return P\n }\n\n function b () {\n p(65504);\n p(16);\n F(74);\n F(70);\n F(73);\n F(70);\n F(0);\n F(1);\n F(1);\n F(0);\n p(1);\n p(1);\n F(0);\n F(0)\n }\n\n function r (aa, ab) {\n p(65472);\n p(17);\n F(8);\n p(ab);\n p(aa);\n F(3);\n F(1);\n F(17);\n F(0);\n F(2);\n F(17);\n F(1);\n F(3);\n F(17);\n F(1)\n }\n\n function D () {\n p(65499);\n p(132);\n F(0);\n for (var ab = 0; ab < 64; ab++) {\n F(O[ab])\n }\n F(1);\n for (var aa = 0; aa < 64; aa++) {\n F(K[aa])\n }\n }\n\n function H () {\n p(65476);\n p(418);\n F(0);\n for (var ae = 0; ae < 16; ae++) {\n F(g[ae + 1])\n }\n for (var ad = 0; ad <= 11; ad++) {\n F(c[ad])\n }\n F(16);\n for (var ac = 0; ac < 16; ac++) {\n F(w[ac + 1])\n }\n for (var ab = 0; ab <= 161; ab++) {\n F(E[ab])\n }\n F(1);\n for (var aa = 0; aa < 16; aa++) {\n F(v[aa + 1])\n }\n for (var ah = 0; ah <= 11; ah++) {\n F(Y[ah])\n }\n F(17);\n for (var ag = 0; ag < 16; ag++) {\n F(J[ag + 1])\n }\n for (var af = 0; af <= 161; af++) {\n F(B[af])\n }\n }\n\n function I () {\n p(65498);\n p(12);\n F(3);\n F(1);\n F(0);\n F(2);\n F(17);\n F(3);\n F(17);\n F(0);\n F(63);\n F(0)\n }\n\n function L (ad, aa, al, at, ap) {\n var ag = ap[0];\n var ab = ap[240];\n var ac;\n const ar = 16;\n const ai = 63;\n const ah = 64;\n var aq = N(ad, aa);\n for (var am = 0; am < ah; ++am) {\n S[i[am]] = aq[am]\n }\n var an = S[0] - al;\n al = S[0];\n if (an == 0) {\n X(at[0])\n } else {\n ac = 32767 + an;\n X(at[m[ac]]);\n X(n[ac])\n }\n var ae = 63;\n for (; (ae > 0) && (S[ae] == 0); ae--) {\n }\n if (ae == 0) {\n X(ag);\n return al\n }\n var ao = 1;\n var au;\n while (ao <= ae) {\n var ak = ao;\n for (; (S[ao] == 0) && (ao <= ae); ++ao) {\n }\n var aj = ao - ak;\n if (aj >= ar) {\n au = aj >> 4;\n for (var af = 1; af <= au; ++af) {\n X(ab)\n }\n aj = aj & 15\n }\n ac = 32767 + S[ao];\n X(ap[(aj << 4) + m[ac]]);\n X(n[ac]);\n ao++\n }\n if (ae != ai) {\n X(ag)\n }\n return al\n }\n\n function y () {\n var ab = String.fromCharCode;\n for (var aa = 0; aa < 256; aa++) {\n e[aa] = ab(aa)\n }\n }\n\n this.encode = function (an, aj, aB) {\n var aa = new Date().getTime();\n if (aj) {\n R(aj)\n }\n j = new Array();\n t = 0;\n a = 7;\n p(65496);\n b();\n D();\n r(an.width, an.height);\n H();\n I();\n var al = 0;\n var aq = 0;\n var ao = 0;\n t = 0;\n a = 7;\n this.encode.displayName = \"_encode_\";\n var at = an.data;\n var ar = an.width;\n var aA = an.height;\n var ay = ar * 4;\n var ai = ar * 3;\n var ah, ag = 0;\n var am, ax, az;\n var ab, ap, ac, af, ae;\n while (ag < aA) {\n ah = 0;\n while (ah < ay) {\n ab = ay * ag + ah;\n ap = ab;\n ac = -1;\n af = 0;\n for (ae = 0; ae < 64; ae++) {\n af = ae >> 3;\n ac = (ae & 7) * 4;\n ap = ab + (af * ay) + ac;\n if (ag + af >= aA) {\n ap -= (ay * (ag + 1 + af - aA))\n }\n if (ah + ac >= ay) {\n ap -= ((ah + ac) - ay + 4)\n }\n am = at[ap++];\n ax = at[ap++];\n az = at[ap++];\n A[ae] = ((C[am] + C[(ax + 256) >> 0] + C[(az + 512) >> 0]) >> 16) - 128;\n f[ae] = ((C[(am + 768) >> 0] + C[(ax + 1024) >> 0] + C[(az + 1280) >> 0]) >> 16) - 128;\n U[ae] = ((C[(am + 1280) >> 0] + C[(ax + 1536) >> 0] + C[(az + 1792) >> 0]) >> 16) - 128\n }\n al = L(A, d, al, u, G);\n aq = L(f, Z, aq, h, T);\n ao = L(U, Z, ao, h, T);\n ah += 32\n }\n ag += 8\n }\n if (a >= 0) {\n var aw = [];\n aw[1] = a + 1;\n aw[0] = (1 << (a + 1)) - 1;\n X(aw)\n }\n p(65497);\n if (aB) {\n var av = j.length;\n var aC = new Uint8Array(av);\n for (var au = 0; au < av; au++) {\n aC[au] = j[au].charCodeAt()\n }\n j = [];\n var ak = new Date().getTime() - aa;\n return aC\n }\n var ad = \"data:image/jpeg;base64,\" + btoa(j.join(\"\"));\n j = [];\n var ak = new Date().getTime() - aa;\n return ad\n };\n function R (ab) {\n if (ab <= 0) {\n ab = 1\n }\n if (ab > 100) {\n ab = 100\n }\n if (x == ab) {\n return\n }\n var aa = 0;\n if (ab < 50) {\n aa = Math.floor(5000 / ab)\n } else {\n aa = Math.floor(200 - ab * 2)\n }\n M(aa);\n x = ab;\n }\n\n function Q () {\n var aa = new Date().getTime();\n if (!l) {\n l = 50\n }\n y();\n W();\n z();\n V();\n R(l);\n var ab = new Date().getTime() - aa;\n }\n\n Q()\n}\n\nmodule.exports = JPEGEncoder;\n\n\n/** WEBPACK FOOTER **\n ** src/lib/jpeg_encoder_basic.js\n **/","// 保证按需加载的文件路径正确\n__webpack_public_path__ = getJsDir('lrz') + '/';\nwindow.URL = window.URL || window.webkitURL;\n\nvar Promise = require('Promise'),\n BlobFormDataShim = require('Blob.FormData.shim'),\n exif = require('exif');\n\n\nvar UA = (function (userAgent) {\n var ISOldIOS = /OS (\\d)_.* like Mac OS X/g.exec(userAgent),\n isOldAndroid = /Android (\\d.*?);/g.exec(userAgent) || /Android\\/(\\d.*?) /g.exec(userAgent);\n\n // 判断设备是否是IOS7以下\n // 判断设备是否是android4.5以下\n // 判断是否iOS\n // 判断是否android\n // 判断是否QQ浏览器\n return {\n oldIOS : ISOldIOS ? +ISOldIOS.pop() < 8 : false,\n oldAndroid: isOldAndroid ? +isOldAndroid.pop().substr(0, 3) < 4.5 : false,\n iOS : /\\(i[^;]+;( U;)? CPU.+Mac OS X/.test(userAgent),\n android : /Android/g.test(userAgent),\n mQQBrowser: /MQQBrowser/g.test(userAgent)\n }\n})(navigator.userAgent);\n\n\nfunction Lrz (file, opts) {\n var that = this;\n\n if (!file) throw new Error('没有收到图片,可能的解决方案:https://github.com/think2011/localResizeIMG/issues/7');\n\n opts = opts || {};\n\n that.defaults = {\n width : null,\n height : null,\n fieldName: 'file',\n quality : 0.7\n };\n\n that.file = file;\n\n for (var p in opts) {\n if (!opts.hasOwnProperty(p)) continue;\n that.defaults[p] = opts[p];\n }\n\n return this.init();\n}\n\nLrz.prototype.init = function () {\n var that = this,\n file = that.file,\n fileIsString = typeof file === 'string',\n fileIsBase64 = /^data:/.test(file),\n img = new Image(),\n canvas = document.createElement('canvas'),\n blob = fileIsString ? file : URL.createObjectURL(file);\n\n that.img = img;\n that.blob = blob;\n that.canvas = canvas;\n\n if (fileIsString) {\n that.fileName = fileIsBase64 ? 'base64.jpg' : (file.split('/').pop());\n } else {\n that.fileName = file.name;\n }\n\n if (!document.createElement('canvas').getContext) {\n throw new Error('浏览器不支持canvas');\n }\n\n return new Promise(function (resolve, reject) {\n img.onerror = function () {\n throw new Error('加载图片文件失败');\n };\n\n img.onload = function () {\n that._getBase64()\n .then(function (base64) {\n if (base64.length < 10) reject('生成base64失败');\n\n return base64;\n })\n .then(function (base64) {\n var formData = null;\n\n // 压缩文件太大就采用源文件,且使用原生的FormData() @source #55\n if (typeof that.file === 'object' && base64.length > that.file.size) {\n formData = new FormData();\n file = that.file;\n } else {\n formData = new BlobFormDataShim.FormData();\n file = dataURItoBlob(base64);\n }\n\n formData.append(that.defaults.fieldName, file, (that.fileName.replace(/\\..+/g, '.jpg')));\n\n resolve({\n formData : formData,\n fileLen : +file.size,\n base64 : base64,\n base64Len: base64.length,\n origin : that.file\n });\n\n // 释放内存\n for (var p in that) {\n if (!that.hasOwnProperty(p)) continue;\n\n that[p] = null;\n }\n URL.revokeObjectURL(that.blob);\n });\n };\n\n // 如果传入的是base64在移动端会报错\n !fileIsBase64 && (img.crossOrigin = \"*\");\n\n img.src = blob;\n });\n};\n\nLrz.prototype._getBase64 = function () {\n var that = this,\n img = that.img,\n file = that.file,\n canvas = that.canvas;\n\n return new Promise(function (resolve) {\n try {\n // 传入blob在android4.3以下有bug\n exif.getData(typeof file === 'object' ? file : img, function () {\n that.orientation = exif.getTag(this, \"Orientation\");\n\n that.resize = that._getResize();\n that.ctx = canvas.getContext('2d');\n\n canvas.width = that.resize.width;\n canvas.height = that.resize.height;\n\n // 设置为白色背景,jpg是不支持透明的,所以会被默认为canvas默认的黑色背景。\n that.ctx.fillStyle = '#fff';\n that.ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n // 根据设备对应处理方式\n if (UA.oldIOS) {\n that._createBase64ForOldIOS().then(resolve);\n }\n else {\n that._createBase64().then(resolve);\n }\n });\n } catch (err) {\n // 这样能解决低内存设备闪退的问题吗?\n throw new Error(err);\n }\n });\n};\n\n\nLrz.prototype._createBase64ForOldIOS = function () {\n var that = this,\n img = that.img,\n canvas = that.canvas,\n defaults = that.defaults,\n orientation = that.orientation;\n\n return new Promise(function (resolve) {\n require(['megapix-image'], function (MegaPixImage) {\n var mpImg = new MegaPixImage(img);\n\n if (\"5678\".indexOf(orientation) > -1) {\n mpImg.render(canvas, {\n width : canvas.height,\n height : canvas.width,\n orientation: orientation\n });\n } else {\n mpImg.render(canvas, {\n width : canvas.width,\n height : canvas.height,\n orientation: orientation\n });\n }\n\n resolve(canvas.toDataURL('image/jpeg', defaults.quality));\n });\n });\n};\n\nLrz.prototype._createBase64 = function () {\n var that = this,\n resize = that.resize,\n img = that.img,\n canvas = that.canvas,\n ctx = that.ctx,\n defaults = that.defaults,\n orientation = that.orientation;\n\n // 调整为正确方向\n switch (orientation) {\n case 3:\n ctx.rotate(180 * Math.PI / 180);\n ctx.drawImage(img, -resize.width, -resize.height, resize.width, resize.height);\n break;\n case 6:\n ctx.rotate(90 * Math.PI / 180);\n ctx.drawImage(img, 0, -resize.width, resize.height, resize.width);\n break;\n case 8:\n ctx.rotate(270 * Math.PI / 180);\n ctx.drawImage(img, -resize.height, 0, resize.height, resize.width);\n break;\n\n case 2:\n ctx.translate(resize.width, 0);\n ctx.scale(-1, 1);\n ctx.drawImage(img, 0, 0, resize.width, resize.height);\n break;\n case 4:\n ctx.translate(resize.width, 0);\n ctx.scale(-1, 1);\n ctx.rotate(180 * Math.PI / 180);\n ctx.drawImage(img, -resize.width, -resize.height, resize.width, resize.height);\n break;\n case 5:\n ctx.translate(resize.width, 0);\n ctx.scale(-1, 1);\n ctx.rotate(90 * Math.PI / 180);\n ctx.drawImage(img, 0, -resize.width, resize.height, resize.width);\n break;\n case 7:\n ctx.translate(resize.width, 0);\n ctx.scale(-1, 1);\n ctx.rotate(270 * Math.PI / 180);\n ctx.drawImage(img, -resize.height, 0, resize.height, resize.width);\n break;\n\n default:\n ctx.drawImage(img, 0, 0, resize.width, resize.height);\n }\n\n return new Promise(function (resolve) {\n if (UA.oldAndroid || UA.mQQBrowser || !navigator.userAgent) {\n require(['jpeg_encoder_basic'], function (JPEGEncoder) {\n var encoder = new JPEGEncoder(),\n img = ctx.getImageData(0, 0, canvas.width, canvas.height);\n\n resolve(encoder.encode(img, defaults.quality * 100));\n })\n }\n else {\n resolve(canvas.toDataURL('image/jpeg', defaults.quality));\n }\n });\n};\n\nLrz.prototype._getResize = function () {\n var that = this,\n img = that.img,\n defaults = that.defaults,\n width = defaults.width,\n height = defaults.height,\n orientation = that.orientation;\n\n var ret = {\n width : img.width,\n height: img.height\n };\n\n if (\"5678\".indexOf(orientation) > -1) {\n ret.width = img.height;\n ret.height = img.width;\n }\n\n // 如果原图小于设定,采用原图\n if (ret.width < width || ret.height < height) {\n return ret;\n }\n\n var scale = ret.width / ret.height;\n\n if (width && height) {\n if (scale >= width / height) {\n if (ret.width > width) {\n ret.width = width;\n ret.height = Math.ceil(width / scale);\n }\n } else {\n if (ret.height > height) {\n ret.height = height;\n ret.width = Math.ceil(height * scale);\n }\n }\n }\n else if (width) {\n if (width < ret.width) {\n ret.width = width;\n ret.height = Math.ceil(width / scale);\n }\n }\n else if (height) {\n if (height < ret.height) {\n ret.width = Math.ceil(height * scale);\n ret.height = height;\n }\n }\n\n // 超过这个值base64无法生成,在IOS上\n while (ret.width >= 3264 || ret.height >= 2448) {\n ret.width *= 0.8;\n ret.height *= 0.8;\n }\n\n return ret;\n};\n\n/**\n * 获取当前js文件所在路径,必须得在代码顶部执行此函数\n * @returns {string}\n */\nfunction getJsDir (src) {\n var script = null;\n\n if (src) {\n script = [].filter.call(document.scripts, function (v) {\n return v.src.indexOf(src) !== -1;\n })[0];\n } else {\n script = document.scripts[document.scripts.length - 1];\n }\n\n if (!script) return null;\n\n return script.src.substr(0, script.src.lastIndexOf('/'));\n}\n\n\n/**\n * 转换成formdata\n * @param dataURI\n * @returns {*}\n *\n * @source http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata\n */\nfunction dataURItoBlob (dataURI) {\n // convert base64/URLEncoded data component to raw binary data held in a string\n var byteString;\n if (dataURI.split(',')[0].indexOf('base64') >= 0)\n byteString = atob(dataURI.split(',')[1]);\n else\n byteString = unescape(dataURI.split(',')[1]);\n\n // separate out the mime component\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n // write the bytes of the string to a typed array\n var ia = new Uint8Array(byteString.length);\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return new BlobFormDataShim.Blob([ia.buffer], {type: mimeString});\n}\n\nwindow.lrz = function (file, opts) {\n return new Lrz(file, opts);\n};\n\n// 版本号来自package.json,构建时自动填充\nwindow.lrz.version = '4.8.35';\n\nmodule.exports = window.lrz;\n\n/**\n *\n *    ┏┓   ┏┓\n *   ┏┛┻━━━┛┻┓\n *   ┃       ┃\n *   ┃   ━   ┃\n *   ┃ ┳┛ ┗┳ ┃\n *   ┃       ┃\n *   ┃   ┻   ┃\n *   ┃       ┃\n *   ┗━┓   ┏━┛Code is far away from bug with the animal protecting\n *     ┃   ┃ 神兽保佑,代码无bug\n *     ┃   ┃\n *     ┃   ┗━━━┓\n *     ┃      ┣┓\n *     ┃     ┏┛\n *     ┗┓┓┏━┳┓┏┛\n *      ┃┫┫ ┃┫┫\n *      ┗┻┛ ┗┻┛\n *\n */\n\n\n\n\n\n/** WEBPACK FOOTER **\n ** src/lrz.js\n **/"],"sourceRoot":""}