@papyrus-sdk/ui-react-native 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../runtime/index.html","../index.ts","../components/Viewer.tsx","../components/PageRenderer.tsx","../components/WebViewViewer.tsx","../components/Topbar.tsx","../icons.tsx","../components/ToolDock.tsx","../strings.ts","../components/RightSheet.tsx","../components/AnnotationEditor.tsx","../components/BottomBar.tsx","../components/SettingsSheet.tsx","../components/CoverPreview.tsx"],"sourcesContent":["<!DOCTYPE html>\r\n<html lang=\"en\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\r\n <title>Papyrus Mobile Runtime</title>\r\n <style>\r\n html,\r\n body {\r\n width: 100%;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n background: #ffffff;\r\n overflow: hidden;\r\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #viewer {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n overflow: hidden;\r\n background: #ffffff;\r\n }\r\n </style>\r\n </head>\r\n <body>\r\n <div id=\"viewer\"></div>\r\n <script>\r\n/*!\r\n\r\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\r\n<http://stuartk.com/jszip>\r\n\r\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\r\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\r\n\r\nJSZip uses the library pako released under the MIT license :\r\nhttps://github.com/nodeca/pako/blob/main/LICENSE\r\n*/\r\n\r\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});\r\n</script>\r\n<script>\r\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"JSZip\")):\"function\"==typeof define&&define.amd?define([\"JSZip\"],e):\"object\"==typeof exports?exports.ePub=e(require(\"JSZip\")):t.ePub=e(t.JSZip)}(window,(function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\"/dist/\",i(i.s=30)}([function(t,e,i){\"use strict\";i.r(e),i.d(e,\"requestAnimationFrame\",(function(){return s})),i.d(e,\"uuid\",(function(){return o})),i.d(e,\"documentHeight\",(function(){return a})),i.d(e,\"isElement\",(function(){return h})),i.d(e,\"isNumber\",(function(){return l})),i.d(e,\"isFloat\",(function(){return c})),i.d(e,\"prefixed\",(function(){return u})),i.d(e,\"defaults\",(function(){return d})),i.d(e,\"extend\",(function(){return f})),i.d(e,\"insert\",(function(){return p})),i.d(e,\"locationOf\",(function(){return g})),i.d(e,\"indexOfSorted\",(function(){return m})),i.d(e,\"bounds\",(function(){return v})),i.d(e,\"borders\",(function(){return y})),i.d(e,\"nodeBounds\",(function(){return b})),i.d(e,\"windowBounds\",(function(){return w})),i.d(e,\"indexOfNode\",(function(){return x})),i.d(e,\"indexOfTextNode\",(function(){return E})),i.d(e,\"indexOfElementNode\",(function(){return S})),i.d(e,\"isXml\",(function(){return N})),i.d(e,\"createBlob\",(function(){return _})),i.d(e,\"createBlobUrl\",(function(){return T})),i.d(e,\"revokeBlobUrl\",(function(){return C})),i.d(e,\"createBase64Url\",(function(){return O})),i.d(e,\"type\",(function(){return I})),i.d(e,\"parse\",(function(){return R})),i.d(e,\"qs\",(function(){return k})),i.d(e,\"qsa\",(function(){return A})),i.d(e,\"qsp\",(function(){return L})),i.d(e,\"sprint\",(function(){return j})),i.d(e,\"treeWalker\",(function(){return D})),i.d(e,\"walk\",(function(){return P})),i.d(e,\"blob2base64\",(function(){return M})),i.d(e,\"defer\",(function(){return z})),i.d(e,\"querySelectorByType\",(function(){return B})),i.d(e,\"findChildren\",(function(){return q})),i.d(e,\"parents\",(function(){return F})),i.d(e,\"filterChildren\",(function(){return U})),i.d(e,\"getParentByTagName\",(function(){return W})),i.d(e,\"RangeObject\",(function(){return H}));var n=i(15);const s=\"undefined\"!=typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),r=\"undefined\"!=typeof URL?URL:\"undefined\"!=typeof window?window.URL||window.webkitURL||window.mozURL:void 0;function o(){var t=(new Date).getTime();return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){var i=(t+16*Math.random())%16|0;return t=Math.floor(t/16),(\"x\"==e?i:7&i|8).toString(16)}))}function a(){return Math.max(document.documentElement.clientHeight,document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight)}function h(t){return!(!t||1!=t.nodeType)}function l(t){return!isNaN(parseFloat(t))&&isFinite(t)}function c(t){let e=parseFloat(t);return!1!==l(t)&&(\"string\"==typeof t&&t.indexOf(\".\")>-1||Math.floor(e)!==e)}function u(t){var e=[\"-webkit-\",\"-webkit-\",\"-moz-\",\"-o-\",\"-ms-\"],i=t.toLowerCase(),n=[\"Webkit\",\"webkit\",\"Moz\",\"O\",\"ms\"].length;if(\"undefined\"==typeof document||void 0!==document.body.style[i])return t;for(var s=0;s<n;s++)if(void 0!==document.body.style[e[s]+i])return e[s]+i;return t}function d(t){for(var e=1,i=arguments.length;e<i;e++){var n=arguments[e];for(var s in n)void 0===t[s]&&(t[s]=n[s])}return t}function f(t){var e=[].slice.call(arguments,1);return e.forEach((function(e){e&&Object.getOwnPropertyNames(e).forEach((function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(e,i))}))})),t}function p(t,e,i){var n=g(t,e,i);return e.splice(n,0,t),n}function g(t,e,i,n,s){var r,o=n||0,a=s||e.length,h=parseInt(o+(a-o)/2);return i||(i=function(t,e){return t>e?1:t<e?-1:t==e?0:void 0}),a-o<=0?h:(r=i(e[h],t),a-o==1?r>=0?h:h+1:0===r?h:-1===r?g(t,e,i,h,a):g(t,e,i,o,h))}function m(t,e,i,n,s){var r,o=n||0,a=s||e.length,h=parseInt(o+(a-o)/2);return i||(i=function(t,e){return t>e?1:t<e?-1:t==e?0:void 0}),a-o<=0?-1:(r=i(e[h],t),a-o==1?0===r?h:-1:0===r?h:-1===r?m(t,e,i,h,a):m(t,e,i,o,h))}function v(t){var e=window.getComputedStyle(t),i=0,n=0;return[\"width\",\"paddingRight\",\"paddingLeft\",\"marginRight\",\"marginLeft\",\"borderRightWidth\",\"borderLeftWidth\"].forEach((function(t){i+=parseFloat(e[t])||0})),[\"height\",\"paddingTop\",\"paddingBottom\",\"marginTop\",\"marginBottom\",\"borderTopWidth\",\"borderBottomWidth\"].forEach((function(t){n+=parseFloat(e[t])||0})),{height:n,width:i}}function y(t){var e=window.getComputedStyle(t),i=0,n=0;return[\"paddingRight\",\"paddingLeft\",\"marginRight\",\"marginLeft\",\"borderRightWidth\",\"borderLeftWidth\"].forEach((function(t){i+=parseFloat(e[t])||0})),[\"paddingTop\",\"paddingBottom\",\"marginTop\",\"marginBottom\",\"borderTopWidth\",\"borderBottomWidth\"].forEach((function(t){n+=parseFloat(e[t])||0})),{height:n,width:i}}function b(t){let e,i=t.ownerDocument;if(t.nodeType==Node.TEXT_NODE){let n=i.createRange();n.selectNodeContents(t),e=n.getBoundingClientRect()}else e=t.getBoundingClientRect();return e}function w(){var t=window.innerWidth,e=window.innerHeight;return{top:0,left:0,right:t,bottom:e,width:t,height:e}}function x(t,e){for(var i,n=t.parentNode.childNodes,s=-1,r=0;r<n.length&&((i=n[r]).nodeType===e&&s++,i!=t);r++);return s}function E(t){return x(t,3)}function S(t){return x(t,1)}function N(t){return[\"xml\",\"opf\",\"ncx\"].indexOf(t)>-1}function _(t,e){return new Blob([t],{type:e})}function T(t,e){var i=_(t,e);return r.createObjectURL(i)}function C(t){return r.revokeObjectURL(t)}function O(t,e){if(\"string\"==typeof t)return\"data:\"+e+\";base64,\"+btoa(t)}function I(t){return Object.prototype.toString.call(t).slice(8,-1)}function R(t,e,i){var s;return s=\"undefined\"==typeof DOMParser||i?n.DOMParser:DOMParser,65279===t.charCodeAt(0)&&(t=t.slice(1)),(new s).parseFromString(t,e)}function k(t,e){var i;if(!t)throw new Error(\"No Element Provided\");return void 0!==t.querySelector?t.querySelector(e):(i=t.getElementsByTagName(e)).length?i[0]:void 0}function A(t,e){return void 0!==t.querySelector?t.querySelectorAll(e):t.getElementsByTagName(e)}function L(t,e,i){var n,s;if(void 0!==t.querySelector){for(var r in e+=\"[\",i)e+=r+\"~='\"+i[r]+\"'\";return e+=\"]\",t.querySelector(e)}if(n=t.getElementsByTagName(e),s=Array.prototype.slice.call(n,0).filter((function(t){for(var e in i)if(t.getAttribute(e)===i[e])return!0;return!1})))return s[0]}function j(t,e){void 0!==(t.ownerDocument||t).createTreeWalker?D(t,e,NodeFilter.SHOW_TEXT):P(t,(function(t){t&&3===t.nodeType&&e(t)}))}function D(t,e,i){var n=document.createTreeWalker(t,i,null,!1);let s;for(;s=n.nextNode();)e(s)}function P(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(P(t,e))return!0;t=t.nextSibling}while(t)}function M(t){return new Promise((function(e,i){var n=new FileReader;n.readAsDataURL(t),n.onloadend=function(){e(n.result)}}))}function z(){this.resolve=null,this.reject=null,this.id=o(),this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e}),Object.freeze(this)}function B(t,e,i){var n;if(void 0!==t.querySelector&&(n=t.querySelector(`${e}[*|type=\"${i}\"]`)),n&&0!==n.length)return n;n=A(t,e);for(var s=0;s<n.length;s++)if(n[s].getAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\")===i||n[s].getAttribute(\"epub:type\")===i)return n[s]}function q(t){for(var e=[],i=t.childNodes,n=0;n<i.length;n++){let t=i[n];1===t.nodeType&&e.push(t)}return e}function F(t){for(var e=[t];t;t=t.parentNode)e.unshift(t);return e}function U(t,e,i){for(var n=[],s=t.childNodes,r=0;r<s.length;r++){let t=s[r];if(1===t.nodeType&&t.nodeName.toLowerCase()===e){if(i)return t;n.push(t)}}if(!i)return n}function W(t,e){let i;if(null!==t&&\"\"!==e)for(i=t.parentNode;1===i.nodeType;){if(i.tagName.toLowerCase()===e)return i;i=i.parentNode}}class H{constructor(){this.collapsed=!1,this.commonAncestorContainer=void 0,this.endContainer=void 0,this.endOffset=void 0,this.startContainer=void 0,this.startOffset=void 0}setStart(t,e){this.startContainer=t,this.startOffset=e,this.endContainer?this.commonAncestorContainer=this._commonAncestorContainer():this.collapse(!0),this._checkCollapsed()}setEnd(t,e){this.endContainer=t,this.endOffset=e,this.startContainer?(this.collapsed=!1,this.commonAncestorContainer=this._commonAncestorContainer()):this.collapse(!1),this._checkCollapsed()}collapse(t){this.collapsed=!0,t?(this.endContainer=this.startContainer,this.endOffset=this.startOffset,this.commonAncestorContainer=this.startContainer.parentNode):(this.startContainer=this.endContainer,this.startOffset=this.endOffset,this.commonAncestorContainer=this.endOffset.parentNode)}selectNode(t){let e=t.parentNode,i=Array.prototype.indexOf.call(e.childNodes,t);this.setStart(e,i),this.setEnd(e,i+1)}selectNodeContents(t){t.childNodes[t.childNodes-1];let e=3===t.nodeType?t.textContent.length:parent.childNodes.length;this.setStart(t,0),this.setEnd(t,e)}_commonAncestorContainer(t,e){var i=F(t||this.startContainer),n=F(e||this.endContainer);if(i[0]==n[0])for(var s=0;s<i.length;s++)if(i[s]!=n[s])return i[s-1]}_checkCollapsed(){this.startContainer===this.endContainer&&this.startOffset===this.endOffset?this.collapsed=!0:this.collapsed=!1}toString(){}}},function(t,e,i){\"use strict\";i.d(e,\"b\",(function(){return n})),i.d(e,\"a\",(function(){return s})),i.d(e,\"c\",(function(){return r}));const n=\"0.3\",s=[\"keydown\",\"keyup\",\"keypressed\",\"mouseup\",\"mousedown\",\"mousemove\",\"click\",\"touchend\",\"touchstart\",\"touchmove\"],r={BOOK:{OPEN_FAILED:\"openFailed\"},CONTENTS:{EXPAND:\"expand\",RESIZE:\"resize\",SELECTED:\"selected\",SELECTED_RANGE:\"selectedRange\",LINK_CLICKED:\"linkClicked\"},LOCATIONS:{CHANGED:\"changed\"},MANAGERS:{RESIZE:\"resize\",RESIZED:\"resized\",ORIENTATION_CHANGE:\"orientationchange\",ADDED:\"added\",SCROLL:\"scroll\",SCROLLED:\"scrolled\",REMOVED:\"removed\"},VIEWS:{AXIS:\"axis\",WRITING_MODE:\"writingMode\",LOAD_ERROR:\"loaderror\",RENDERED:\"rendered\",RESIZED:\"resized\",DISPLAYED:\"displayed\",SHOWN:\"shown\",HIDDEN:\"hidden\",MARK_CLICKED:\"markClicked\"},RENDITION:{STARTED:\"started\",ATTACHED:\"attached\",DISPLAYED:\"displayed\",DISPLAY_ERROR:\"displayerror\",RENDERED:\"rendered\",REMOVED:\"removed\",RESIZED:\"resized\",ORIENTATION_CHANGE:\"orientationchange\",LOCATION_CHANGED:\"locationChanged\",RELOCATED:\"relocated\",MARK_CLICKED:\"markClicked\",SELECTED:\"selected\",LAYOUT:\"layout\"},LAYOUT:{UPDATED:\"updated\"},ANNOTATION:{ATTACH:\"attach\",DETACH:\"detach\"}}},function(t,e,i){\"use strict\";var n=i(0);class s{constructor(t,e,i){var r;if(this.str=\"\",this.base={},this.spinePos=0,this.range=!1,this.path={},this.start=null,this.end=null,!(this instanceof s))return new s(t,e,i);if(\"string\"==typeof e?this.base=this.parseComponent(e):\"object\"==typeof e&&e.steps&&(this.base=e),\"string\"===(r=this.checkType(t)))return this.str=t,Object(n.extend)(this,this.parse(t));if(\"range\"===r)return Object(n.extend)(this,this.fromRange(t,this.base,i));if(\"node\"===r)return Object(n.extend)(this,this.fromNode(t,this.base,i));if(\"EpubCFI\"===r&&t.path)return t;if(t)throw new TypeError(\"not a valid argument for EpubCFI\");return this}checkType(t){return this.isCfiString(t)?\"string\":!t||\"object\"!=typeof t||\"Range\"!==Object(n.type)(t)&&void 0===t.startContainer?t&&\"object\"==typeof t&&void 0!==t.nodeType?\"node\":!!(t&&\"object\"==typeof t&&t instanceof s)&&\"EpubCFI\":\"range\"}parse(t){var e,i,n,s={spinePos:-1,range:!1,base:{},path:{},start:null,end:null};return\"string\"!=typeof t?{spinePos:-1}:(0===t.indexOf(\"epubcfi(\")&&\")\"===t[t.length-1]&&(t=t.slice(8,t.length-1)),(e=this.getChapterComponent(t))?(s.base=this.parseComponent(e),i=this.getPathComponent(t),s.path=this.parseComponent(i),(n=this.getRange(t))&&(s.range=!0,s.start=this.parseComponent(n[0]),s.end=this.parseComponent(n[1])),s.spinePos=s.base.steps[1].index,s):{spinePos:-1})}parseComponent(t){var e,i={steps:[],terminal:{offset:null,assertion:null}},n=t.split(\":\"),s=n[0].split(\"/\");return n.length>1&&(e=n[1],i.terminal=this.parseTerminal(e)),\"\"===s[0]&&s.shift(),i.steps=s.map(function(t){return this.parseStep(t)}.bind(this)),i}parseStep(t){var e,i,n,s,r;if((s=t.match(/\\[(.*)\\]/))&&s[1]&&(r=s[1]),i=parseInt(t),!isNaN(i))return i%2==0?(e=\"element\",n=i/2-1):(e=\"text\",n=(i-1)/2),{type:e,index:n,id:r||null}}parseTerminal(t){var e,i,s=t.match(/\\[(.*)\\]/);return s&&s[1]?(e=parseInt(t.split(\"[\")[0]),i=s[1]):e=parseInt(t),Object(n.isNumber)(e)||(e=null),{offset:e,assertion:i}}getChapterComponent(t){return t.split(\"!\")[0]}getPathComponent(t){var e=t.split(\"!\");if(e[1]){return e[1].split(\",\")[0]}}getRange(t){var e=t.split(\",\");return 3===e.length&&[e[1],e[2]]}getCharecterOffsetComponent(t){return t.split(\":\")[1]||\"\"}joinSteps(t){return t?t.map((function(t){var e=\"\";return\"element\"===t.type&&(e+=2*(t.index+1)),\"text\"===t.type&&(e+=1+2*t.index),t.id&&(e+=\"[\"+t.id+\"]\"),e})).join(\"/\"):\"\"}segmentString(t){var e=\"/\";return e+=this.joinSteps(t.steps),t.terminal&&null!=t.terminal.offset&&(e+=\":\"+t.terminal.offset),t.terminal&&null!=t.terminal.assertion&&(e+=\"[\"+t.terminal.assertion+\"]\"),e}toString(){var t=\"epubcfi(\";return t+=this.segmentString(this.base),t+=\"!\",t+=this.segmentString(this.path),this.range&&this.start&&(t+=\",\",t+=this.segmentString(this.start)),this.range&&this.end&&(t+=\",\",t+=this.segmentString(this.end)),t+=\")\"}compare(t,e){var i,n,r,o;if(\"string\"==typeof t&&(t=new s(t)),\"string\"==typeof e&&(e=new s(e)),t.spinePos>e.spinePos)return 1;if(t.spinePos<e.spinePos)return-1;t.range?(i=t.path.steps.concat(t.start.steps),r=t.start.terminal):(i=t.path.steps,r=t.path.terminal),e.range?(n=e.path.steps.concat(e.start.steps),o=e.start.terminal):(n=e.path.steps,o=e.path.terminal);for(var a=0;a<i.length;a++){if(!i[a])return-1;if(!n[a])return 1;if(i[a].index>n[a].index)return 1;if(i[a].index<n[a].index)return-1}return i.length<n.length?-1:r.offset>o.offset?1:r.offset<o.offset?-1:0}step(t){var e=3===t.nodeType?\"text\":\"element\";return{id:t.id,tagName:t.tagName,type:e,index:this.position(t)}}filteredStep(t,e){var i,n=this.filter(t,e);if(n)return i=3===n.nodeType?\"text\":\"element\",{id:n.id,tagName:n.tagName,type:i,index:this.filteredPosition(n,e)}}pathTo(t,e,i){for(var n,s={steps:[],terminal:{offset:null,assertion:null}},r=t;r&&r.parentNode&&9!=r.parentNode.nodeType;)(n=i?this.filteredStep(r,i):this.step(r))&&s.steps.unshift(n),r=r.parentNode;return null!=e&&e>=0&&(s.terminal.offset=e,\"text\"!=s.steps[s.steps.length-1].type&&s.steps.push({type:\"text\",index:0})),s}equalStep(t,e){return!(!t||!e)&&(t.index===e.index&&t.id===e.id&&t.type===e.type)}fromRange(t,e,i){var n={range:!1,base:{},path:{},start:null,end:null},s=t.startContainer,r=t.endContainer,o=t.startOffset,a=t.endOffset,h=!1;if(i&&(h=null!=s.ownerDocument.querySelector(\".\"+i)),\"string\"==typeof e?(n.base=this.parseComponent(e),n.spinePos=n.base.steps[1].index):\"object\"==typeof e&&(n.base=e),t.collapsed)h&&(o=this.patchOffset(s,o,i)),n.path=this.pathTo(s,o,i);else{n.range=!0,h&&(o=this.patchOffset(s,o,i)),n.start=this.pathTo(s,o,i),h&&(a=this.patchOffset(r,a,i)),n.end=this.pathTo(r,a,i),n.path={steps:[],terminal:null};var l,c=n.start.steps.length;for(l=0;l<c&&this.equalStep(n.start.steps[l],n.end.steps[l]);l++)l===c-1?n.start.terminal===n.end.terminal&&(n.path.steps.push(n.start.steps[l]),n.range=!1):n.path.steps.push(n.start.steps[l]);n.start.steps=n.start.steps.slice(n.path.steps.length),n.end.steps=n.end.steps.slice(n.path.steps.length)}return n}fromNode(t,e,i){var n={range:!1,base:{},path:{},start:null,end:null};return\"string\"==typeof e?(n.base=this.parseComponent(e),n.spinePos=n.base.steps[1].index):\"object\"==typeof e&&(n.base=e),n.path=this.pathTo(t,null,i),n}filter(t,e){var i,n,s,r,o,a=!1;return 3===t.nodeType?(a=!0,s=t.parentNode,i=t.parentNode.classList.contains(e)):(a=!1,i=t.classList.contains(e)),i&&a?(r=s.previousSibling,o=s.nextSibling,r&&3===r.nodeType?n=r:o&&3===o.nodeType&&(n=o),n||t):!(i&&!a)&&t}patchOffset(t,e,i){if(3!=t.nodeType)throw new Error(\"Anchor must be a text node\");var n=t,s=e;for(t.parentNode.classList.contains(i)&&(n=t.parentNode);n.previousSibling;){if(1===n.previousSibling.nodeType){if(!n.previousSibling.classList.contains(i))break;s+=n.previousSibling.textContent.length}else s+=n.previousSibling.textContent.length;n=n.previousSibling}return s}normalizedMap(t,e,i){var n,s,r,o={},a=-1,h=t.length;for(n=0;n<h;n++)1===(s=t[n].nodeType)&&t[n].classList.contains(i)&&(s=3),n>0&&3===s&&3===r?o[n]=a:e===s&&(a+=1,o[n]=a),r=s;return o}position(t){var e,i;return 1===t.nodeType?((e=t.parentNode.children)||(e=Object(n.findChildren)(t.parentNode)),i=Array.prototype.indexOf.call(e,t)):i=(e=this.textNodes(t.parentNode)).indexOf(t),i}filteredPosition(t,e){var i,n;return 1===t.nodeType?(i=t.parentNode.children,n=this.normalizedMap(i,1,e)):(i=t.parentNode.childNodes,t.parentNode.classList.contains(e)&&(i=(t=t.parentNode).parentNode.childNodes),n=this.normalizedMap(i,3,e)),n[Array.prototype.indexOf.call(i,t)]}stepsToXpath(t){var e=[\".\",\"*\"];return t.forEach((function(t){var i=t.index+1;t.id?e.push(\"*[position()=\"+i+\" and @id='\"+t.id+\"']\"):\"text\"===t.type?e.push(\"text()[\"+i+\"]\"):e.push(\"*[\"+i+\"]\")})),e.join(\"/\")}stepsToQuerySelector(t){var e=[\"html\"];return t.forEach((function(t){var i=t.index+1;t.id?e.push(\"#\"+t.id):\"text\"===t.type||e.push(\"*:nth-child(\"+i+\")\")})),e.join(\">\")}textNodes(t,e){return Array.prototype.slice.call(t.childNodes).filter((function(t){return 3===t.nodeType||!(!e||!t.classList.contains(e))}))}walkToNode(t,e,i){var s,r,o=e||document,a=o.documentElement,h=t.length;for(r=0;r<h&&(\"element\"===(s=t[r]).type?a=s.id?o.getElementById(s.id):(a.children||Object(n.findChildren)(a))[s.index]:\"text\"===s.type&&(a=this.textNodes(a,i)[s.index]),a);r++);return a}findNode(t,e,i){var n,s,r=e||document;return i||void 0===r.evaluate?n=i?this.walkToNode(t,r,i):this.walkToNode(t,r):(s=this.stepsToXpath(t),n=r.evaluate(s,r,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue),n}fixMiss(t,e,i,n){var s,r,o=this.findNode(t.slice(0,-1),i,n),a=o.childNodes,h=this.normalizedMap(a,3,n),l=t[t.length-1].index;for(let t in h){if(!h.hasOwnProperty(t))return;if(h[t]===l){if(!(e>(r=(s=a[t]).textContent.length))){o=1===s.nodeType?s.childNodes[0]:s;break}e-=r}}return{container:o,offset:e}}toRange(t,e){var i,s,r,o,a,h,l,c,u=t||document,d=!!e&&null!=u.querySelector(\".\"+e);if(i=void 0!==u.createRange?u.createRange():new n.RangeObject,this.range?(s=this.start,h=this.path.steps.concat(s.steps),o=this.findNode(h,u,d?e:null),r=this.end,l=this.path.steps.concat(r.steps),a=this.findNode(l,u,d?e:null)):(s=this.path,h=this.path.steps,o=this.findNode(this.path.steps,u,d?e:null)),!o)return console.log(\"No startContainer found for\",this.toString()),null;try{null!=s.terminal.offset?i.setStart(o,s.terminal.offset):i.setStart(o,0)}catch(t){c=this.fixMiss(h,s.terminal.offset,u,d?e:null),i.setStart(c.container,c.offset)}if(a)try{null!=r.terminal.offset?i.setEnd(a,r.terminal.offset):i.setEnd(a,0)}catch(t){c=this.fixMiss(l,this.end.terminal.offset,u,d?e:null),i.setEnd(c.container,c.offset)}return i}isCfiString(t){return\"string\"==typeof t&&0===t.indexOf(\"epubcfi(\")&&\")\"===t[t.length-1]}generateChapterComponent(t,e,i){var n=\"/\"+2*(t+1)+\"/\";return n+=2*(parseInt(e)+1),i&&(n+=\"[\"+i+\"]\"),n}collapse(t){this.range&&(this.range=!1,t?(this.path.steps=this.path.steps.concat(this.start.steps),this.path.terminal=this.start.terminal):(this.path.steps=this.path.steps.concat(this.end.steps),this.path.terminal=this.end.terminal))}}e.a=s},function(t,e,i){\"use strict\";var n,s,r,o,a,h,l,c=i(31),u=i(45),d=Function.prototype.apply,f=Function.prototype.call,p=Object.create,g=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};s=function(t,e){var i,s;return u(e),s=this,n.call(this,t,i=function(){r.call(s,t,i),d.call(e,this,arguments)}),i.__eeOnceListener__=e,this},a={on:n=function(t,e){var i;return u(e),v.call(this,\"__ee__\")?i=this.__ee__:(i=y.value=p(null),g(this,\"__ee__\",y),y.value=null),i[t]?\"object\"==typeof i[t]?i[t].push(e):i[t]=[i[t],e]:i[t]=e,this},once:s,off:r=function(t,e){var i,n,s,r;if(u(e),!v.call(this,\"__ee__\"))return this;if(!(i=this.__ee__)[t])return this;if(\"object\"==typeof(n=i[t]))for(r=0;s=n[r];++r)s!==e&&s.__eeOnceListener__!==e||(2===n.length?i[t]=n[r?0:1]:n.splice(r,1));else n!==e&&n.__eeOnceListener__!==e||delete i[t];return this},emit:o=function(t){var e,i,n,s,r;if(v.call(this,\"__ee__\")&&(s=this.__ee__[t]))if(\"object\"==typeof s){for(i=arguments.length,r=new Array(i-1),e=1;e<i;++e)r[e-1]=arguments[e];for(s=s.slice(),e=0;n=s[e];++e)d.call(n,this,r)}else switch(arguments.length){case 1:f.call(s,this);break;case 2:f.call(s,this,arguments[1]);break;case 3:f.call(s,this,arguments[1],arguments[2]);break;default:for(i=arguments.length,r=new Array(i-1),e=1;e<i;++e)r[e-1]=arguments[e];d.call(s,this,r)}}},h={on:c(n),once:c(s),off:c(r),emit:c(o)},l=m({},h),t.exports=e=function(t){return null==t?p(l):m(Object(t),h)},e.methods=a},function(t,e,i){\"use strict\";var n=i(7),s=i.n(n);e.a=class{constructor(t){var e;t.indexOf(\"://\")>-1&&(t=new URL(t).pathname),e=this.parse(t),this.path=t,this.isDirectory(t)?this.directory=t:this.directory=e.dir+\"/\",this.filename=e.base,this.extension=e.ext.slice(1)}parse(t){return s.a.parse(t)}isAbsolute(t){return s.a.isAbsolute(t||this.path)}isDirectory(t){return\"/\"===t.charAt(t.length-1)}resolve(t){return s.a.resolve(this.directory,t)}relative(t){return t&&t.indexOf(\"://\")>-1?t:s.a.relative(this.directory,t)}splitPath(t){return this.splitPathRe.exec(t).slice(1)}toString(){return this.path}}},function(t,e,i){\"use strict\";var n=i(4),s=i(7),r=i.n(s);e.a=class{constructor(t,e){var i=t.indexOf(\"://\")>-1,s=t;if(this.Url=void 0,this.href=t,this.protocol=\"\",this.origin=\"\",this.hash=\"\",this.hash=\"\",this.search=\"\",this.base=e,!i&&!1!==e&&\"string\"!=typeof e&&window&&window.location&&(this.base=window.location.href),i||this.base)try{this.base?this.Url=new URL(t,this.base):this.Url=new URL(t),this.href=this.Url.href,this.protocol=this.Url.protocol,this.origin=this.Url.origin,this.hash=this.Url.hash,this.search=this.Url.search,s=this.Url.pathname+(this.Url.search?this.Url.search:\"\")}catch(t){this.Url=void 0,this.base&&(s=new n.a(this.base).resolve(s))}this.Path=new n.a(s),this.directory=this.Path.directory,this.filename=this.Path.filename,this.extension=this.Path.extension}path(){return this.Path}resolve(t){var e;return t.indexOf(\"://\")>-1?t:(e=r.a.resolve(this.directory,t),this.origin+e)}relative(t){return r.a.relative(t,this.directory)}toString(){return this.href}}},function(t,e,i){\"use strict\";e.a=class{constructor(t){this.context=t||this,this.hooks=[]}register(){for(var t=0;t<arguments.length;++t)if(\"function\"==typeof arguments[t])this.hooks.push(arguments[t]);else for(var e=0;e<arguments[t].length;++e)this.hooks.push(arguments[t][e])}deregister(t){let e;for(let i=0;i<this.hooks.length;i++)if(e=this.hooks[i],e===t){this.hooks.splice(i,1);break}}trigger(){var t=arguments,e=this.context,i=[];return this.hooks.forEach((function(n){try{var s=n.apply(e,t)}catch(t){console.log(t)}s&&\"function\"==typeof s.then&&i.push(s)})),Promise.all(i)}list(){return this.hooks}clear(){return this.hooks=[]}}},function(t,e,i){\"use strict\";if(!n)var n={cwd:function(){return\"/\"}};function s(t){if(\"string\"!=typeof t)throw new TypeError(\"Path must be a string. Received \"+t)}function r(t,e){for(var i,n=\"\",s=-1,r=0,o=0;o<=t.length;++o){if(o<t.length)i=t.charCodeAt(o);else{if(47===i)break;i=47}if(47===i){if(s===o-1||1===r);else if(s!==o-1&&2===r){if(n.length<2||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){for(var a=n.length-1,h=a;h>=0&&47!==n.charCodeAt(h);--h);if(h!==a){n=-1===h?\"\":n.slice(0,h),s=o,r=0;continue}}else if(2===n.length||1===n.length){n=\"\",s=o,r=0;continue}e&&(n.length>0?n+=\"/..\":n=\"..\")}else n.length>0?n+=\"/\"+t.slice(s+1,o):n=t.slice(s+1,o);s=o,r=0}else 46===i&&-1!==r?++r:r=-1}return n}var o={resolve:function(){for(var t,e=\"\",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var a;o>=0?a=arguments[o]:(void 0===t&&(t=n.cwd()),a=t),s(a),0!==a.length&&(e=a+\"/\"+e,i=47===a.charCodeAt(0))}return e=r(e,!i),i?e.length>0?\"/\"+e:\"/\":e.length>0?e:\".\"},normalize:function(t){if(s(t),0===t.length)return\".\";var e=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!e)).length||e||(t=\".\"),t.length>0&&i&&(t+=\"/\"),e?\"/\"+t:t},isAbsolute:function(t){return s(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return\".\";for(var t,e=0;e<arguments.length;++e){var i=arguments[e];s(i),i.length>0&&(void 0===t?t=i:t+=\"/\"+i)}return void 0===t?\".\":o.normalize(t)},relative:function(t,e){if(s(t),s(e),t===e)return\"\";if((t=o.resolve(t))===(e=o.resolve(e)))return\"\";for(var i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var n=t.length,r=n-i,a=1;a<e.length&&47===e.charCodeAt(a);++a);for(var h=e.length-a,l=r<h?r:h,c=-1,u=0;u<=l;++u){if(u===l){if(h>l){if(47===e.charCodeAt(a+u))return e.slice(a+u+1);if(0===u)return e.slice(a+u)}else r>l&&(47===t.charCodeAt(i+u)?c=u:0===u&&(c=0));break}var d=t.charCodeAt(i+u);if(d!==e.charCodeAt(a+u))break;47===d&&(c=u)}var f=\"\";for(u=i+c+1;u<=n;++u)u!==n&&47!==t.charCodeAt(u)||(0===f.length?f+=\"..\":f+=\"/..\");return f.length>0?f+e.slice(a+c):(a+=c,47===e.charCodeAt(a)&&++a,e.slice(a))},_makeLong:function(t){return t},dirname:function(t){if(s(t),0===t.length)return\".\";for(var e=t.charCodeAt(0),i=47===e,n=-1,r=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!r){n=o;break}}else r=!1;return-1===n?i?\"/\":\".\":i&&1===n?\"//\":t.slice(0,n)},basename:function(t,e){if(void 0!==e&&\"string\"!=typeof e)throw new TypeError('\"ext\" argument must be a string');s(t);var i,n=0,r=-1,o=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return\"\";var a=e.length-1,h=-1;for(i=t.length-1;i>=0;--i){var l=t.charCodeAt(i);if(47===l){if(!o){n=i+1;break}}else-1===h&&(o=!1,h=i+1),a>=0&&(l===e.charCodeAt(a)?-1==--a&&(r=i):(a=-1,r=h))}return n===r?r=h:-1===r&&(r=t.length),t.slice(n,r)}for(i=t.length-1;i>=0;--i)if(47===t.charCodeAt(i)){if(!o){n=i+1;break}}else-1===r&&(o=!1,r=i+1);return-1===r?\"\":t.slice(n,r)},extname:function(t){s(t);for(var e=-1,i=0,n=-1,r=!0,o=0,a=t.length-1;a>=0;--a){var h=t.charCodeAt(a);if(47!==h)-1===n&&(r=!1,n=a+1),46===h?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!r){i=a+1;break}}return-1===e||-1===n||0===o||1===o&&e===n-1&&e===i+1?\"\":t.slice(e,n)},format:function(t){if(null===t||\"object\"!=typeof t)throw new TypeError('Parameter \"pathObject\" must be an object, not '+typeof t);return function(t,e){var i=e.dir||e.root,n=e.base||(e.name||\"\")+(e.ext||\"\");return i?i===e.root?i+n:i+t+n:n}(\"/\",t)},parse:function(t){s(t);var e={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===t.length)return e;var i,n=t.charCodeAt(0),r=47===n;r?(e.root=\"/\",i=1):i=0;for(var o=-1,a=0,h=-1,l=!0,c=t.length-1,u=0;c>=i;--c)if(47!==(n=t.charCodeAt(c)))-1===h&&(l=!1,h=c+1),46===n?-1===o?o=c:1!==u&&(u=1):-1!==o&&(u=-1);else if(!l){a=c+1;break}return-1===o||-1===h||0===u||1===u&&o===h-1&&o===a+1?-1!==h&&(e.base=e.name=0===a&&r?t.slice(1,h):t.slice(a,h)):(0===a&&r?(e.name=t.slice(1,o),e.base=t.slice(1,h)):(e.name=t.slice(a,o),e.base=t.slice(a,h)),e.ext=t.slice(o,h)),a>0?e.dir=t.slice(0,a-1):r&&(e.dir=\"/\"),e},sep:\"/\",delimiter:\":\",posix:null};t.exports=o},function(t,e,i){\"use strict\";i.d(e,\"a\",(function(){return r})),i.d(e,\"b\",(function(){return o})),i.d(e,\"d\",(function(){return a})),i.d(e,\"c\",(function(){return h})),i.d(e,\"e\",(function(){return l}));var n=i(0),s=i(5);i(4);function r(t,e){var i,s,r=e.url,o=r.indexOf(\"://\")>-1;t&&(s=Object(n.qs)(t,\"head\"),(i=Object(n.qs)(s,\"base\"))||(i=t.createElement(\"base\"),s.insertBefore(i,s.firstChild)),!o&&window&&window.location&&(r=window.location.origin+r),i.setAttribute(\"href\",r))}function o(t,e){var i,s,r=e.canonical;t&&(i=Object(n.qs)(t,\"head\"),(s=Object(n.qs)(i,\"link[rel='canonical']\"))?s.setAttribute(\"href\",r):((s=t.createElement(\"link\")).setAttribute(\"rel\",\"canonical\"),s.setAttribute(\"href\",r),i.appendChild(s)))}function a(t,e){var i,s,r=e.idref;t&&(i=Object(n.qs)(t,\"head\"),(s=Object(n.qs)(i,\"link[property='dc.identifier']\"))?s.setAttribute(\"content\",r):((s=t.createElement(\"meta\")).setAttribute(\"name\",\"dc.identifier\"),s.setAttribute(\"content\",r),i.appendChild(s)))}function h(t,e){var i=t.querySelectorAll(\"a[href]\");if(i.length)for(var r=Object(n.qs)(t.ownerDocument,\"base\"),o=r?r.getAttribute(\"href\"):void 0,a=function(t){var i=t.getAttribute(\"href\");if(0!==i.indexOf(\"mailto:\"))if(i.indexOf(\"://\")>-1)t.setAttribute(\"target\",\"_blank\");else{var n;try{n=new s.a(i,o)}catch(t){}t.onclick=function(){return n&&n.hash?e(n.Path.path+n.hash):e(n?n.Path.path:i),!1}}}.bind(this),h=0;h<i.length;h++)a(i[h])}function l(t,e,i){return e.forEach((function(e,n){e&&i[n]&&(e=e.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),t=t.replace(new RegExp(e,\"g\"),i[n]))})),t}},function(t,e,i){\"use strict\";var n=i(0);e.a=class{constructor(t){this._q=[],this.context=t,this.tick=n.requestAnimationFrame,this.running=!1,this.paused=!1}enqueue(){var t,e,i=[].shift.call(arguments),s=arguments;if(!i)throw new Error(\"No Task Provided\");return e=\"function\"==typeof i?{task:i,args:s,deferred:t=new n.defer,promise:t.promise}:{promise:i},this._q.push(e),0!=this.paused||this.running||this.run(),e.promise}dequeue(){var t,e,i;return!this._q.length||this.paused?((t=new n.defer).deferred.resolve(),t.promise):(e=(t=this._q.shift()).task)?(i=e.apply(this.context,t.args))&&\"function\"==typeof i.then?i.then(function(){t.deferred.resolve.apply(this.context,arguments)}.bind(this),function(){t.deferred.reject.apply(this.context,arguments)}.bind(this)):(t.deferred.resolve.apply(this.context,i),t.promise):t.promise?t.promise:void 0}dump(){for(;this._q.length;)this.dequeue()}run(){return this.running||(this.running=!0,this.defered=new n.defer),this.tick.call(window,()=>{this._q.length?this.dequeue().then(function(){this.run()}.bind(this)):(this.defered.resolve(),this.running=void 0)}),1==this.paused&&(this.paused=!1),this.defered.promise}flush(){return this.running?this.running:this._q.length?(this.running=this.dequeue().then(function(){return this.running=void 0,this.flush()}.bind(this)),this.running):void 0}clear(){this._q=[]}length(){return this._q.length}pause(){this.paused=!0}stop(){this._q=[],this.running=!1,this.paused=!0}}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0);function o(){var t=\"reverse\",e=function(){var t=document.createElement(\"div\");t.dir=\"rtl\",t.style.position=\"fixed\",t.style.width=\"1px\",t.style.height=\"1px\",t.style.top=\"0px\",t.style.left=\"0px\",t.style.overflow=\"hidden\";var e=document.createElement(\"div\");e.style.width=\"2px\";var i=document.createElement(\"span\");i.style.width=\"1px\",i.style.display=\"inline-block\";var n=document.createElement(\"span\");return n.style.width=\"1px\",n.style.display=\"inline-block\",e.appendChild(i),e.appendChild(n),t.appendChild(e),t}();return document.body.appendChild(e),e.scrollLeft>0?t=\"default\":\"undefined\"!=typeof Element&&Element.prototype.scrollIntoView?(e.children[0].children[1].scrollIntoView(),e.scrollLeft<0&&(t=\"negative\")):(e.scrollLeft=1,0===e.scrollLeft&&(t=\"negative\")),document.body.removeChild(e),t}var a=i(11),h=i(9),l=i(28),c=i.n(l);var u=class{constructor(t){this.settings=t||{},this.id=\"epubjs-container-\"+Object(r.uuid)(),this.container=this.create(this.settings),this.settings.hidden&&(this.wrapper=this.wrap(this.container))}create(t){let e=t.height,i=t.width,n=t.overflow||!1,s=t.axis||\"vertical\",o=t.direction;Object(r.extend)(this.settings,t),t.height&&Object(r.isNumber)(t.height)&&(e=t.height+\"px\"),t.width&&Object(r.isNumber)(t.width)&&(i=t.width+\"px\");let a=document.createElement(\"div\");return a.id=this.id,a.classList.add(\"epub-container\"),a.style.wordSpacing=\"0\",a.style.lineHeight=\"0\",a.style.verticalAlign=\"top\",a.style.position=\"relative\",\"horizontal\"===s&&(a.style.display=\"flex\",a.style.flexDirection=\"row\",a.style.flexWrap=\"nowrap\"),i&&(a.style.width=i),e&&(a.style.height=e),n&&(\"scroll\"===n&&\"vertical\"===s?(a.style[\"overflow-y\"]=n,a.style[\"overflow-x\"]=\"hidden\"):\"scroll\"===n&&\"horizontal\"===s?(a.style[\"overflow-y\"]=\"hidden\",a.style[\"overflow-x\"]=n):a.style.overflow=n),o&&(a.dir=o,a.style.direction=o),o&&this.settings.fullsize&&(document.body.style.direction=o),a}wrap(t){var e=document.createElement(\"div\");return e.style.visibility=\"hidden\",e.style.overflow=\"hidden\",e.style.width=\"0\",e.style.height=\"0\",e.appendChild(t),e}getElement(t){var e;if(Object(r.isElement)(t)?e=t:\"string\"==typeof t&&(e=document.getElementById(t)),!e)throw new Error(\"Not an Element\");return e}attachTo(t){var e,i=this.getElement(t);if(i)return e=this.settings.hidden?this.wrapper:this.container,i.appendChild(e),this.element=i,i}getContainer(){return this.container}onResize(t){Object(r.isNumber)(this.settings.width)&&Object(r.isNumber)(this.settings.height)||(this.resizeFunc=c()(t,50),window.addEventListener(\"resize\",this.resizeFunc,!1))}onOrientationChange(t){this.orientationChangeFunc=t,window.addEventListener(\"orientationchange\",this.orientationChangeFunc,!1)}size(t,e){var i;let n=t||this.settings.width,s=e||this.settings.height;null===t?(i=this.element.getBoundingClientRect()).width&&(t=Math.floor(i.width),this.container.style.width=t+\"px\"):Object(r.isNumber)(t)?this.container.style.width=t+\"px\":this.container.style.width=t,null===e?(i=i||this.element.getBoundingClientRect()).height&&(e=i.height,this.container.style.height=e+\"px\"):Object(r.isNumber)(e)?this.container.style.height=e+\"px\":this.container.style.height=e,Object(r.isNumber)(t)||(t=this.container.clientWidth),Object(r.isNumber)(e)||(e=this.container.clientHeight),this.containerStyles=window.getComputedStyle(this.container),this.containerPadding={left:parseFloat(this.containerStyles[\"padding-left\"])||0,right:parseFloat(this.containerStyles[\"padding-right\"])||0,top:parseFloat(this.containerStyles[\"padding-top\"])||0,bottom:parseFloat(this.containerStyles[\"padding-bottom\"])||0};let o=Object(r.windowBounds)(),a=window.getComputedStyle(document.body),h=parseFloat(a[\"padding-left\"])||0,l=parseFloat(a[\"padding-right\"])||0,c=parseFloat(a[\"padding-top\"])||0,u=parseFloat(a[\"padding-bottom\"])||0;return n||(t=o.width-h-l),(this.settings.fullsize&&!s||!s)&&(e=o.height-c-u),{width:t-this.containerPadding.left-this.containerPadding.right,height:e-this.containerPadding.top-this.containerPadding.bottom}}bounds(){let t;return\"visible\"!==this.container.style.overflow&&(t=this.container&&this.container.getBoundingClientRect()),t&&t.width&&t.height?t:Object(r.windowBounds)()}getSheet(){var t=document.createElement(\"style\");return t.appendChild(document.createTextNode(\"\")),document.head.appendChild(t),t.sheet}addStyleRules(t,e){var i=\"#\"+this.id+\" \",n=\"\";this.sheet||(this.sheet=this.getSheet()),e.forEach((function(t){for(var e in t)t.hasOwnProperty(e)&&(n+=e+\":\"+t[e]+\";\")})),this.sheet.insertRule(i+t+\" {\"+n+\"}\",0)}axis(t){\"horizontal\"===t?(this.container.style.display=\"flex\",this.container.style.flexDirection=\"row\",this.container.style.flexWrap=\"nowrap\"):this.container.style.display=\"block\",this.settings.axis=t}direction(t){this.container&&(this.container.dir=t,this.container.style.direction=t),this.settings.fullsize&&(document.body.style.direction=t),this.settings.dir=t}overflow(t){this.container&&(\"scroll\"===t&&\"vertical\"===this.settings.axis?(this.container.style[\"overflow-y\"]=t,this.container.style[\"overflow-x\"]=\"hidden\"):\"scroll\"===t&&\"horizontal\"===this.settings.axis?(this.container.style[\"overflow-y\"]=\"hidden\",this.container.style[\"overflow-x\"]=t):this.container.style.overflow=t),this.settings.overflow=t}destroy(){this.element&&(this.settings.hidden?this.wrapper:this.container,this.element.contains(this.container)&&this.element.removeChild(this.container),window.removeEventListener(\"resize\",this.resizeFunc),window.removeEventListener(\"orientationChange\",this.orientationChangeFunc))}};var d=class{constructor(t){this.container=t,this._views=[],this.length=0,this.hidden=!1}all(){return this._views}first(){return this._views[0]}last(){return this._views[this._views.length-1]}indexOf(t){return this._views.indexOf(t)}slice(){return this._views.slice.apply(this._views,arguments)}get(t){return this._views[t]}append(t){return this._views.push(t),this.container&&this.container.appendChild(t.element),this.length++,t}prepend(t){return this._views.unshift(t),this.container&&this.container.insertBefore(t.element,this.container.firstChild),this.length++,t}insert(t,e){return this._views.splice(e,0,t),this.container&&(e<this.container.children.length?this.container.insertBefore(t.element,this.container.children[e]):this.container.appendChild(t.element)),this.length++,t}remove(t){var e=this._views.indexOf(t);e>-1&&this._views.splice(e,1),this.destroy(t),this.length--}destroy(t){t.displayed&&t.destroy(),this.container&&this.container.removeChild(t.element),t=null}forEach(){return this._views.forEach.apply(this._views,arguments)}clear(){var t,e=this.length;if(this.length){for(var i=0;i<e;i++)t=this._views[i],this.destroy(t);this._views=[],this.length=0}}find(t){for(var e,i=this.length,n=0;n<i;n++)if((e=this._views[n]).displayed&&e.section.index==t.index)return e}displayed(){for(var t,e=[],i=this.length,n=0;n<i;n++)(t=this._views[n]).displayed&&e.push(t);return e}show(){for(var t,e=this.length,i=0;i<e;i++)(t=this._views[i]).displayed&&t.show();this.hidden=!1}hide(){for(var t,e=this.length,i=0;i<e;i++)(t=this._views[i]).displayed&&t.hide();this.hidden=!0}},f=i(1);class p{constructor(t){this.name=\"default\",this.optsSettings=t.settings,this.View=t.view,this.request=t.request,this.renditionQueue=t.queue,this.q=new h.a(this),this.settings=Object(r.extend)(this.settings||{},{infinite:!0,hidden:!1,width:void 0,height:void 0,axis:void 0,writingMode:void 0,flow:\"scrolled\",ignoreClass:\"\",fullsize:void 0,allowScriptedContent:!1,allowPopups:!1}),Object(r.extend)(this.settings,t.settings||{}),this.viewSettings={ignoreClass:this.settings.ignoreClass,axis:this.settings.axis,flow:this.settings.flow,layout:this.layout,method:this.settings.method,width:0,height:0,forceEvenPages:!0,allowScriptedContent:this.settings.allowScriptedContent,allowPopups:this.settings.allowPopups},this.rendered=!1}render(t,e){let i=t.tagName;void 0!==this.settings.fullsize||!i||\"body\"!=i.toLowerCase()&&\"html\"!=i.toLowerCase()||(this.settings.fullsize=!0),this.settings.fullsize&&(this.settings.overflow=\"visible\",this.overflow=this.settings.overflow),this.settings.size=e,this.settings.rtlScrollType=o(),this.stage=new u({width:e.width,height:e.height,overflow:this.overflow,hidden:this.settings.hidden,axis:this.settings.axis,fullsize:this.settings.fullsize,direction:this.settings.direction}),this.stage.attachTo(t),this.container=this.stage.getContainer(),this.views=new d(this.container),this._bounds=this.bounds(),this._stageSize=this.stage.size(),this.viewSettings.width=this._stageSize.width,this.viewSettings.height=this._stageSize.height,this.stage.onResize(this.onResized.bind(this)),this.stage.onOrientationChange(this.onOrientationChange.bind(this)),this.addEventListeners(),this.layout&&this.updateLayout(),this.rendered=!0}addEventListeners(){var t;window.addEventListener(\"unload\",function(t){this.destroy()}.bind(this)),t=this.settings.fullsize?window:this.container,this._onScroll=this.onScroll.bind(this),t.addEventListener(\"scroll\",this._onScroll)}removeEventListeners(){(this.settings.fullsize?window:this.container).removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0}destroy(){clearTimeout(this.orientationTimeout),clearTimeout(this.resizeTimeout),clearTimeout(this.afterScrolled),this.clear(),this.removeEventListeners(),this.stage.destroy(),this.rendered=!1}onOrientationChange(t){let{orientation:e}=window;this.optsSettings.resizeOnOrientationChange&&this.resize(),clearTimeout(this.orientationTimeout),this.orientationTimeout=setTimeout(function(){this.orientationTimeout=void 0,this.optsSettings.resizeOnOrientationChange&&this.resize(),this.emit(f.c.MANAGERS.ORIENTATION_CHANGE,e)}.bind(this),500)}onResized(t){this.resize()}resize(t,e,i){let n=this.stage.size(t,e);this.winBounds=Object(r.windowBounds)(),this.orientationTimeout&&this.winBounds.width===this.winBounds.height?this._stageSize=void 0:this._stageSize&&this._stageSize.width===n.width&&this._stageSize.height===n.height||(this._stageSize=n,this._bounds=this.bounds(),this.clear(),this.viewSettings.width=this._stageSize.width,this.viewSettings.height=this._stageSize.height,this.updateLayout(),this.emit(f.c.MANAGERS.RESIZED,{width:this._stageSize.width,height:this._stageSize.height},i))}createView(t,e){return new this.View(t,Object(r.extend)(this.viewSettings,{forceRight:e}))}handleNextPrePaginated(t,e,i){let n;if(\"pre-paginated\"===this.layout.name&&this.layout.divisor>1){if(t||0===e.index)return;if(n=e.next(),n&&!n.properties.includes(\"page-spread-left\"))return i.call(this,n)}}display(t,e){var i=new r.defer,n=i.promise;(e===t.href||Object(r.isNumber)(e))&&(e=void 0);var s=this.views.find(t);if(s&&t&&\"pre-paginated\"!==this.layout.name){let t=s.offset();if(\"ltr\"===this.settings.direction)this.scrollTo(t.left,t.top,!0);else{let e=s.width();this.scrollTo(t.left+e,t.top,!0)}if(e){let t=s.locationOf(e),i=s.width();this.moveTo(t,i)}return i.resolve(),n}this.clear();let o=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&t.properties.includes(\"page-spread-right\")&&(o=!0),this.add(t,o).then(function(t){if(e){let i=t.locationOf(e),n=t.width();this.moveTo(i,n)}}.bind(this),t=>{i.reject(t)}).then(function(){return this.handleNextPrePaginated(o,t,this.add)}.bind(this)).then(function(){this.views.show(),i.resolve()}.bind(this)),n}afterDisplayed(t){this.emit(f.c.MANAGERS.ADDED,t)}afterResized(t){this.emit(f.c.MANAGERS.RESIZE,t.section)}moveTo(t,e){var i=0,n=0;this.isPaginated?((i=Math.floor(t.left/this.layout.delta)*this.layout.delta)+this.layout.delta>this.container.scrollWidth&&(i=this.container.scrollWidth-this.layout.delta),(n=Math.floor(t.top/this.layout.delta)*this.layout.delta)+this.layout.delta>this.container.scrollHeight&&(n=this.container.scrollHeight-this.layout.delta)):n=t.top,\"rtl\"===this.settings.direction&&(i+=this.layout.delta,i-=e),this.scrollTo(i,n,!0)}add(t,e){var i=this.createView(t,e);return this.views.append(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}append(t,e){var i=this.createView(t,e);return this.views.append(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}prepend(t,e){var i=this.createView(t,e);return i.on(f.c.VIEWS.RESIZED,t=>{this.counter(t)}),this.views.prepend(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}counter(t){\"vertical\"===this.settings.axis?this.scrollBy(0,t.heightDelta,!0):this.scrollBy(t.widthDelta,0,!0)}next(){var t;let e=this.settings.direction;if(this.views.length){if(!this.isPaginated||\"horizontal\"!==this.settings.axis||e&&\"ltr\"!==e)if(this.isPaginated&&\"horizontal\"===this.settings.axis&&\"rtl\"===e)this.scrollLeft=this.container.scrollLeft,\"default\"===this.settings.rtlScrollType?this.container.scrollLeft>0?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next():this.container.scrollLeft+-1*this.layout.delta>-1*this.container.scrollWidth?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next();else if(this.isPaginated&&\"vertical\"===this.settings.axis){this.scrollTop=this.container.scrollTop,this.container.scrollTop+this.container.offsetHeight<this.container.scrollHeight?this.scrollBy(0,this.layout.height,!0):t=this.views.last().section.next()}else t=this.views.last().section.next();else this.scrollLeft=this.container.scrollLeft,this.container.scrollLeft+this.container.offsetWidth+this.layout.delta<=this.container.scrollWidth?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next();if(t){this.clear(),this.updateLayout();let e=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&t.properties.includes(\"page-spread-right\")&&(e=!0),this.append(t,e).then(function(){return this.handleNextPrePaginated(e,t,this.append)}.bind(this),t=>t).then(function(){this.isPaginated||\"horizontal\"!==this.settings.axis||\"rtl\"!==this.settings.direction||\"default\"!==this.settings.rtlScrollType||this.scrollTo(this.container.scrollWidth,0,!0),this.views.show()}.bind(this))}}}prev(){var t;let e=this.settings.direction;if(this.views.length){if(!this.isPaginated||\"horizontal\"!==this.settings.axis||e&&\"ltr\"!==e)if(this.isPaginated&&\"horizontal\"===this.settings.axis&&\"rtl\"===e)this.scrollLeft=this.container.scrollLeft,\"default\"===this.settings.rtlScrollType?this.container.scrollLeft+this.container.offsetWidth<this.container.scrollWidth?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev():this.container.scrollLeft<0?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev();else if(this.isPaginated&&\"vertical\"===this.settings.axis){this.scrollTop=this.container.scrollTop,this.container.scrollTop>0?this.scrollBy(0,-this.layout.height,!0):t=this.views.first().section.prev()}else t=this.views.first().section.prev();else this.scrollLeft=this.container.scrollLeft,this.container.scrollLeft>0?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev();if(t){this.clear(),this.updateLayout();let e=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&\"object\"!=typeof t.prev()&&(e=!0),this.prepend(t,e).then(function(){var e;if(\"pre-paginated\"===this.layout.name&&this.layout.divisor>1&&(e=t.prev()))return this.prepend(e)}.bind(this),t=>t).then(function(){this.isPaginated&&\"horizontal\"===this.settings.axis&&(\"rtl\"===this.settings.direction?\"default\"===this.settings.rtlScrollType?this.scrollTo(0,0,!0):this.scrollTo(-1*this.container.scrollWidth+this.layout.delta,0,!0):this.scrollTo(this.container.scrollWidth-this.layout.delta,0,!0)),this.views.show()}.bind(this))}}}current(){var t=this.visible();return t.length?t[t.length-1]:null}clear(){this.views&&(this.views.hide(),this.scrollTo(0,0,!0),this.views.clear())}currentLocation(){return this.updateLayout(),this.isPaginated&&\"horizontal\"===this.settings.axis?this.location=this.paginatedLocation():this.location=this.scrolledLocation(),this.location}scrolledLocation(){let t=this.visible(),e=this.container.getBoundingClientRect(),i=e.height<window.innerHeight?e.height:window.innerHeight,n=e.width<window.innerWidth?e.width:window.innerWidth,s=\"vertical\"===this.settings.axis,r=(this.settings.direction,0);return this.settings.fullsize&&(r=s?window.scrollY:window.scrollX),t.map(t=>{let o,a,h,l,{index:c,href:u}=t.section,d=t.position(),f=t.width(),p=t.height();s?(o=r+e.top-d.top+0,a=o+i-0,l=this.layout.count(p,i).pages,h=i):(o=r+e.left-d.left+0,a=o+n-0,l=this.layout.count(f,n).pages,h=n);let g=Math.ceil(o/h),m=[],v=Math.ceil(a/h);if(\"rtl\"===this.settings.direction&&!s){let t=g;g=l-v,v=l-t}m=[];for(var y=g;y<=v;y++){let t=y+1;m.push(t)}return{index:c,href:u,pages:m,totalPages:l,mapping:this.mapping.page(t.contents,t.section.cfiBase,o,a)}})}paginatedLocation(){let t=this.visible(),e=this.container.getBoundingClientRect(),i=0,n=0;return this.settings.fullsize&&(i=window.scrollX),t.map(t=>{let s,r,o,a,{index:h,href:l}=t.section,c=t.position(),u=t.width();\"rtl\"===this.settings.direction?(s=e.right-i,a=Math.min(Math.abs(s-c.left),this.layout.width)-n,o=c.width-(c.right-s)-n,r=o-a):(s=e.left+i,a=Math.min(c.right-s,this.layout.width)-n,r=s-c.left+n,o=r+a),n+=a;let d=this.mapping.page(t.contents,t.section.cfiBase,r,o),f=this.layout.count(u).pages,p=Math.floor(r/this.layout.pageWidth),g=[],m=Math.floor(o/this.layout.pageWidth);if(p<0&&(p=0,m+=1),\"rtl\"===this.settings.direction){let t=p;p=f-m,m=f-t}for(var v=p+1;v<=m;v++){let t=v;g.push(t)}return{index:h,href:l,pages:g,totalPages:f,mapping:d}})}isVisible(t,e,i,n){var s=t.position(),r=n||this.bounds();return\"horizontal\"===this.settings.axis&&s.right>r.left-e&&s.left<r.right+i||\"vertical\"===this.settings.axis&&s.bottom>r.top-e&&s.top<r.bottom+i}visible(){for(var t,e=this.bounds(),i=this.views.displayed(),n=i.length,s=[],r=0;r<n;r++)t=i[r],!0===this.isVisible(t,0,0,e)&&s.push(t);return s}scrollBy(t,e,i){let n=\"rtl\"===this.settings.direction?-1:1;i&&(this.ignore=!0),this.settings.fullsize?window.scrollBy(t*n,e*n):(t&&(this.container.scrollLeft+=t*n),e&&(this.container.scrollTop+=e)),this.scrolled=!0}scrollTo(t,e,i){i&&(this.ignore=!0),this.settings.fullsize?window.scrollTo(t,e):(this.container.scrollLeft=t,this.container.scrollTop=e),this.scrolled=!0}onScroll(){let t,e;this.settings.fullsize?(t=window.scrollY,e=window.scrollX):(t=this.container.scrollTop,e=this.container.scrollLeft),this.scrollTop=t,this.scrollLeft=e,this.ignore?this.ignore=!1:(this.emit(f.c.MANAGERS.SCROLL,{top:t,left:e}),clearTimeout(this.afterScrolled),this.afterScrolled=setTimeout(function(){this.emit(f.c.MANAGERS.SCROLLED,{top:this.scrollTop,left:this.scrollLeft})}.bind(this),20))}bounds(){return this.stage.bounds()}applyLayout(t){this.layout=t,this.updateLayout(),this.views&&this.views.length>0&&\"pre-paginated\"===this.layout.name&&this.display(this.views.first().section)}updateLayout(){this.stage&&(this._stageSize=this.stage.size(),this.isPaginated?(this.layout.calculate(this._stageSize.width,this._stageSize.height,this.settings.gap),this.settings.offset=this.layout.delta/this.layout.divisor):this.layout.calculate(this._stageSize.width,this._stageSize.height),this.viewSettings.width=this.layout.width,this.viewSettings.height=this.layout.height,this.setLayout(this.layout))}setLayout(t){this.viewSettings.layout=t,this.mapping=new a.a(t.props,this.settings.direction,this.settings.axis),this.views&&this.views.forEach((function(e){e&&e.setLayout(t)}))}updateWritingMode(t){this.writingMode=t}updateAxis(t,e){(e||t!==this.settings.axis)&&(this.settings.axis=t,this.stage&&this.stage.axis(t),this.viewSettings.axis=t,this.mapping&&(this.mapping=new a.a(this.layout.props,this.settings.direction,this.settings.axis)),this.layout&&(\"vertical\"===t?this.layout.spread(\"none\"):this.layout.spread(this.layout.settings.spread)))}updateFlow(t,e=\"auto\"){let i=\"paginated\"===t||\"auto\"===t;this.isPaginated=i,\"scrolled-doc\"===t||\"scrolled-continuous\"===t||\"scrolled\"===t?this.updateAxis(\"vertical\"):this.updateAxis(\"horizontal\"),this.viewSettings.flow=t,this.settings.overflow?this.overflow=this.settings.overflow:this.overflow=i?\"hidden\":e,this.stage&&this.stage.overflow(this.overflow),this.updateLayout()}getContents(){var t=[];return this.views?(this.views.forEach((function(e){const i=e&&e.contents;i&&t.push(i)})),t):t}direction(t=\"ltr\"){this.settings.direction=t,this.stage&&this.stage.direction(t),this.viewSettings.direction=t,this.updateLayout()}isRendered(){return this.rendered}}s()(p.prototype);e.a=p},function(t,e,i){\"use strict\";var n=i(2),s=i(0);e.a=class{constructor(t,e,i,n=!1){this.layout=t,this.horizontal=\"horizontal\"===i,this.direction=e||\"ltr\",this._dev=n}section(t){var e=this.findRanges(t);return this.rangeListToCfiList(t.section.cfiBase,e)}page(t,e,i,s){var r,o=!(!t||!t.document)&&t.document.body;if(o){if(r=this.rangePairToCfiPair(e,{start:this.findStart(o,i,s),end:this.findEnd(o,i,s)}),!0===this._dev){let e=t.document,i=new n.a(r.start).toRange(e),s=new n.a(r.end).toRange(e),o=e.defaultView.getSelection(),a=e.createRange();o.removeAllRanges(),a.setStart(i.startContainer,i.startOffset),a.setEnd(s.endContainer,s.endOffset),o.addRange(a)}return r}}walk(t,e){if(!t||t.nodeType!==Node.TEXT_NODE){var i=function(t){return t.data.trim().length>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},n=i;n.acceptNode=i;for(var s,r,o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,n,!1);(s=o.nextNode())&&!(r=e(s)););return r}}findRanges(t){for(var e,i,n=[],s=t.contents.scrollWidth(),r=Math.ceil(s/this.layout.spreadWidth)*this.layout.divisor,o=this.layout.columnWidth,a=this.layout.gap,h=0;h<r.pages;h++)e=(o+a)*h,i=o*(h+1)+a*h,n.push({start:this.findStart(t.document.body,e,i),end:this.findEnd(t.document.body,e,i)});return n}findStart(t,e,i){for(var n,r,o=[t],a=t;o.length;)if(n=o.shift(),r=this.walk(n,t=>{var n,r,h,l,c;if(c=Object(s.nodeBounds)(t),this.horizontal&&\"ltr\"===this.direction){if(n=this.horizontal?c.left:c.top,r=this.horizontal?c.right:c.bottom,n>=e&&n<=i)return t;if(r>e)return t;a=t,o.push(t)}else if(this.horizontal&&\"rtl\"===this.direction){if(n=c.left,(r=c.right)<=i&&r>=e)return t;if(n<i)return t;a=t,o.push(t)}else{if(h=c.top,l=c.bottom,h>=e&&h<=i)return t;if(l>e)return t;a=t,o.push(t)}}))return this.findTextStartRange(r,e,i);return this.findTextStartRange(a,e,i)}findEnd(t,e,i){for(var n,r,o=[t],a=t;o.length;)if(n=o.shift(),r=this.walk(n,t=>{var n,r,h,l,c;if(c=Object(s.nodeBounds)(t),this.horizontal&&\"ltr\"===this.direction){if(n=Math.round(c.left),r=Math.round(c.right),n>i&&a)return a;if(r>i)return t;a=t,o.push(t)}else if(this.horizontal&&\"rtl\"===this.direction){if(n=Math.round(this.horizontal?c.left:c.top),(r=Math.round(this.horizontal?c.right:c.bottom))<e&&a)return a;if(n<e)return t;a=t,o.push(t)}else{if(h=Math.round(c.top),l=Math.round(c.bottom),h>i&&a)return a;if(l>i)return t;a=t,o.push(t)}}))return this.findTextEndRange(r,e,i);return this.findTextEndRange(a,e,i)}findTextStartRange(t,e,i){for(var n,s,r=this.splitTextNodeIntoRanges(t),o=0;o<r.length;o++)if(s=(n=r[o]).getBoundingClientRect(),this.horizontal&&\"ltr\"===this.direction){if(s.left>=e)return n}else if(this.horizontal&&\"rtl\"===this.direction){if(s.right<=i)return n}else if(s.top>=e)return n;return r[0]}findTextEndRange(t,e,i){for(var n,s,r,o,a,h,l,c=this.splitTextNodeIntoRanges(t),u=0;u<c.length;u++){if(r=(s=c[u]).getBoundingClientRect(),this.horizontal&&\"ltr\"===this.direction){if(o=r.left,a=r.right,o>i&&n)return n;if(a>i)return s}else if(this.horizontal&&\"rtl\"===this.direction){if(o=r.left,(a=r.right)<e&&n)return n;if(o<e)return s}else{if(h=r.top,l=r.bottom,h>i&&n)return n;if(l>i)return s}n=s}return c[c.length-1]}splitTextNodeIntoRanges(t,e){var i,n=[],s=(t.textContent||\"\").trim(),r=t.ownerDocument,o=e||\" \",a=s.indexOf(o);if(-1===a||t.nodeType!=Node.TEXT_NODE)return(i=r.createRange()).selectNodeContents(t),[i];for((i=r.createRange()).setStart(t,0),i.setEnd(t,a),n.push(i),i=!1;-1!=a;)(a=s.indexOf(o,a+1))>0&&(i&&(i.setEnd(t,a),n.push(i)),(i=r.createRange()).setStart(t,a+1));return i&&(i.setEnd(t,s.length),n.push(i)),n}rangePairToCfiPair(t,e){var i=e.start,s=e.end;return i.collapse(!0),s.collapse(!1),{start:new n.a(i,t).toString(),end:new n.a(s,t).toString()}}rangeListToCfiList(t,e){for(var i,n=[],s=0;s<e.length;s++)i=this.rangePairToCfiPair(t,e[s]),n.push(i);return n}axis(t){return t&&(this.horizontal=\"horizontal\"===t),this.horizontal}}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(2),a=i(11),h=i(8),l=i(1);const c=\"undefined\"!=typeof navigator,u=c&&/Chrome/.test(navigator.userAgent),d=c&&!u&&/AppleWebKit/.test(navigator.userAgent);class f{constructor(t,e,i,n){this.epubcfi=new o.a,this.document=t,this.documentElement=this.document.documentElement,this.content=e||this.document.body,this.window=this.document.defaultView,this._size={width:0,height:0},this.sectionIndex=n||0,this.cfiBase=i||\"\",this.epubReadingSystem(\"epub.js\",l.b),this.called=0,this.active=!0,this.listeners()}static get listenedEvents(){return l.a}width(t){var e=this.content;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.width=t),parseInt(this.window.getComputedStyle(e).width)}height(t){var e=this.content;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.height=t),parseInt(this.window.getComputedStyle(e).height)}contentWidth(t){var e=this.content||this.document.body;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.width=t),parseInt(this.window.getComputedStyle(e).width)}contentHeight(t){var e=this.content||this.document.body;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.height=t),parseInt(this.window.getComputedStyle(e).height)}textWidth(){let t,e,i=this.document.createRange(),n=this.content||this.document.body,s=Object(r.borders)(n);return i.selectNodeContents(n),t=i.getBoundingClientRect(),e=t.width,s&&s.width&&(e+=s.width),Math.round(e)}textHeight(){let t,e,i=this.document.createRange(),n=this.content||this.document.body;return i.selectNodeContents(n),t=i.getBoundingClientRect(),e=t.bottom,Math.round(e)}scrollWidth(){return this.documentElement.scrollWidth}scrollHeight(){return this.documentElement.scrollHeight}overflow(t){return t&&(this.documentElement.style.overflow=t),this.window.getComputedStyle(this.documentElement).overflow}overflowX(t){return t&&(this.documentElement.style.overflowX=t),this.window.getComputedStyle(this.documentElement).overflowX}overflowY(t){return t&&(this.documentElement.style.overflowY=t),this.window.getComputedStyle(this.documentElement).overflowY}css(t,e,i){var n=this.content||this.document.body;return e?n.style.setProperty(t,e,i?\"important\":\"\"):n.style.removeProperty(t),this.window.getComputedStyle(n)[t]}viewport(t){var e,i=this.document.querySelector(\"meta[name='viewport']\"),n={width:void 0,height:void 0,scale:void 0,minimum:void 0,maximum:void 0,scalable:void 0},s=[];if(i&&i.hasAttribute(\"content\")){let t=i.getAttribute(\"content\"),e=t.match(/width\\s*=\\s*([^,]*)/),s=t.match(/height\\s*=\\s*([^,]*)/),r=t.match(/initial-scale\\s*=\\s*([^,]*)/),o=t.match(/minimum-scale\\s*=\\s*([^,]*)/),a=t.match(/maximum-scale\\s*=\\s*([^,]*)/),h=t.match(/user-scalable\\s*=\\s*([^,]*)/);e&&e.length&&void 0!==e[1]&&(n.width=e[1]),s&&s.length&&void 0!==s[1]&&(n.height=s[1]),r&&r.length&&void 0!==r[1]&&(n.scale=r[1]),o&&o.length&&void 0!==o[1]&&(n.minimum=o[1]),a&&a.length&&void 0!==a[1]&&(n.maximum=a[1]),h&&h.length&&void 0!==h[1]&&(n.scalable=h[1])}return e=Object(r.defaults)(t||{},n),t&&(e.width&&s.push(\"width=\"+e.width),e.height&&s.push(\"height=\"+e.height),e.scale&&s.push(\"initial-scale=\"+e.scale),\"no\"===e.scalable?(s.push(\"minimum-scale=\"+e.scale),s.push(\"maximum-scale=\"+e.scale),s.push(\"user-scalable=\"+e.scalable)):(e.scalable&&s.push(\"user-scalable=\"+e.scalable),e.minimum&&s.push(\"minimum-scale=\"+e.minimum),e.maximum&&s.push(\"minimum-scale=\"+e.maximum)),i||((i=this.document.createElement(\"meta\")).setAttribute(\"name\",\"viewport\"),this.document.querySelector(\"head\").appendChild(i)),i.setAttribute(\"content\",s.join(\", \")),this.window.scrollTo(0,0)),e}expand(){this.emit(l.c.CONTENTS.EXPAND)}listeners(){this.imageLoadListeners(),this.mediaQueryListeners(),this.addEventListeners(),this.addSelectionListeners(),\"undefined\"==typeof ResizeObserver?(this.resizeListeners(),this.visibilityListeners()):this.resizeObservers(),this.linksHandler()}removeListeners(){this.removeEventListeners(),this.removeSelectionListeners(),this.observer&&this.observer.disconnect(),clearTimeout(this.expanding)}resizeCheck(){let t=this.textWidth(),e=this.textHeight();t==this._size.width&&e==this._size.height||(this._size={width:t,height:e},this.onResize&&this.onResize(this._size),this.emit(l.c.CONTENTS.RESIZE,this._size))}resizeListeners(){clearTimeout(this.expanding),requestAnimationFrame(this.resizeCheck.bind(this)),this.expanding=setTimeout(this.resizeListeners.bind(this),350)}visibilityListeners(){document.addEventListener(\"visibilitychange\",()=>{\"visible\"===document.visibilityState&&!1===this.active?(this.active=!0,this.resizeListeners()):(this.active=!1,clearTimeout(this.expanding))})}transitionListeners(){let t=this.content;t.style.transitionProperty=\"font, font-size, font-size-adjust, font-stretch, font-variation-settings, font-weight, width, height\",t.style.transitionDuration=\"0.001ms\",t.style.transitionTimingFunction=\"linear\",t.style.transitionDelay=\"0\",this._resizeCheck=this.resizeCheck.bind(this),this.document.addEventListener(\"transitionend\",this._resizeCheck)}mediaQueryListeners(){for(var t=this.document.styleSheets,e=function(t){t.matches&&!this._expanding&&setTimeout(this.expand.bind(this),1)}.bind(this),i=0;i<t.length;i+=1){var n;try{n=t[i].cssRules}catch(t){return}if(!n)return;for(var s=0;s<n.length;s+=1){if(n[s].media)this.window.matchMedia(n[s].media.mediaText).addListener(e)}}}resizeObservers(){this.observer=new ResizeObserver(t=>{requestAnimationFrame(this.resizeCheck.bind(this))}),this.observer.observe(this.document.documentElement)}mutationObservers(){this.observer=new MutationObserver(t=>{this.resizeCheck()});this.observer.observe(this.document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}imageLoadListeners(){for(var t,e=this.document.querySelectorAll(\"img\"),i=0;i<e.length;i++)void 0!==(t=e[i]).naturalWidth&&0===t.naturalWidth&&(t.onload=this.expand.bind(this))}fontLoadListeners(){this.document&&this.document.fonts&&this.document.fonts.ready.then(function(){this.resizeCheck()}.bind(this))}root(){return this.document?this.document.documentElement:null}locationOf(t,e){var i,n={left:0,top:0};if(!this.document)return n;if(this.epubcfi.isCfiString(t)){let s=new o.a(t).toRange(this.document,e);if(s){try{if(!s.endContainer||s.startContainer==s.endContainer&&s.startOffset==s.endOffset){let t=s.startContainer.textContent.indexOf(\" \",s.startOffset);-1==t&&(t=s.startContainer.textContent.length),s.setEnd(s.startContainer,t)}}catch(t){console.error(\"setting end offset to start container length failed\",t)}if(s.startContainer.nodeType===Node.ELEMENT_NODE)i=s.startContainer.getBoundingClientRect(),n.left=i.left,n.top=i.top;else if(d){let t=s.startContainer,e=new Range;try{1===t.nodeType?i=t.getBoundingClientRect():s.startOffset+2<t.length?(e.setStart(t,s.startOffset),e.setEnd(t,s.startOffset+2),i=e.getBoundingClientRect()):s.startOffset-2>0?(e.setStart(t,s.startOffset-2),e.setEnd(t,s.startOffset),i=e.getBoundingClientRect()):i=t.parentNode.getBoundingClientRect()}catch(t){console.error(t,t.stack)}}else i=s.getBoundingClientRect()}}else if(\"string\"==typeof t&&t.indexOf(\"#\")>-1){let e=t.substring(t.indexOf(\"#\")+1),n=this.document.getElementById(e);if(n)if(d){let t=new Range;t.selectNode(n),i=t.getBoundingClientRect()}else i=n.getBoundingClientRect()}return i&&(n.left=i.left,n.top=i.top),n}addStylesheet(t){return new Promise(function(e,i){var n,s=!1;this.document?(n=this.document.querySelector(\"link[href='\"+t+\"']\"))?e(!0):((n=this.document.createElement(\"link\")).type=\"text/css\",n.rel=\"stylesheet\",n.href=t,n.onload=n.onreadystatechange=function(){s||this.readyState&&\"complete\"!=this.readyState||(s=!0,setTimeout(()=>{e(!0)},1))},this.document.head.appendChild(n)):e(!1)}.bind(this))}_getStylesheetNode(t){var e;return t=\"epubjs-inserted-css-\"+(t||\"\"),!!this.document&&((e=this.document.getElementById(t))||((e=this.document.createElement(\"style\")).id=t,this.document.head.appendChild(e)),e)}addStylesheetCss(t,e){return!(!this.document||!t)&&(this._getStylesheetNode(e).innerHTML=t,!0)}addStylesheetRules(t,e){var i;if(this.document&&t&&0!==t.length)if(i=this._getStylesheetNode(e).sheet,\"[object Array]\"===Object.prototype.toString.call(t))for(var n=0,s=t.length;n<s;n++){var r=1,o=t[n],a=t[n][0],h=\"\";\"[object Array]\"===Object.prototype.toString.call(o[1][0])&&(o=o[1],r=0);for(var l=o.length;r<l;r++){var c=o[r];h+=c[0]+\":\"+c[1]+(c[2]?\" !important\":\"\")+\";\\n\"}i.insertRule(a+\"{\"+h+\"}\",i.cssRules.length)}else{Object.keys(t).forEach(e=>{const n=t[e];if(Array.isArray(n))n.forEach(t=>{const n=Object.keys(t).map(e=>`${e}:${t[e]}`).join(\";\");i.insertRule(`${e}{${n}}`,i.cssRules.length)});else{const t=Object.keys(n).map(t=>`${t}:${n[t]}`).join(\";\");i.insertRule(`${e}{${t}}`,i.cssRules.length)}})}}addScript(t){return new Promise(function(e,i){var n,s=!1;this.document?((n=this.document.createElement(\"script\")).type=\"text/javascript\",n.async=!0,n.src=t,n.onload=n.onreadystatechange=function(){s||this.readyState&&\"complete\"!=this.readyState||(s=!0,setTimeout((function(){e(!0)}),1))},this.document.head.appendChild(n)):e(!1)}.bind(this))}addClass(t){var e;this.document&&(e=this.content||this.document.body)&&e.classList.add(t)}removeClass(t){var e;this.document&&(e=this.content||this.document.body)&&e.classList.remove(t)}addEventListeners(){this.document&&(this._triggerEvent=this.triggerEvent.bind(this),l.a.forEach((function(t){this.document.addEventListener(t,this._triggerEvent,{passive:!0})}),this))}removeEventListeners(){this.document&&(l.a.forEach((function(t){this.document.removeEventListener(t,this._triggerEvent,{passive:!0})}),this),this._triggerEvent=void 0)}triggerEvent(t){this.emit(t.type,t)}addSelectionListeners(){this.document&&(this._onSelectionChange=this.onSelectionChange.bind(this),this.document.addEventListener(\"selectionchange\",this._onSelectionChange,{passive:!0}))}removeSelectionListeners(){this.document&&(this.document.removeEventListener(\"selectionchange\",this._onSelectionChange,{passive:!0}),this._onSelectionChange=void 0)}onSelectionChange(t){this.selectionEndTimeout&&clearTimeout(this.selectionEndTimeout),this.selectionEndTimeout=setTimeout(function(){var t=this.window.getSelection();this.triggerSelectedEvent(t)}.bind(this),250)}triggerSelectedEvent(t){var e,i;t&&t.rangeCount>0&&((e=t.getRangeAt(0)).collapsed||(i=new o.a(e,this.cfiBase).toString(),this.emit(l.c.CONTENTS.SELECTED,i),this.emit(l.c.CONTENTS.SELECTED_RANGE,e)))}range(t,e){return new o.a(t).toRange(this.document,e)}cfiFromRange(t,e){return new o.a(t,this.cfiBase,e).toString()}cfiFromNode(t,e){return new o.a(t,this.cfiBase,e).toString()}map(t){return new a.a(t).section()}size(t,e){var i={scale:1,scalable:\"no\"};this.layoutStyle(\"scrolling\"),t>=0&&(this.width(t),i.width=t,this.css(\"padding\",\"0 \"+t/12+\"px\")),e>=0&&(this.height(e),i.height=e),this.css(\"margin\",\"0\"),this.css(\"box-sizing\",\"border-box\"),this.viewport(i)}columns(t,e,i,n,s){let o=Object(r.prefixed)(\"column-axis\"),a=Object(r.prefixed)(\"column-gap\"),h=Object(r.prefixed)(\"column-width\"),l=Object(r.prefixed)(\"column-fill\"),c=0===this.writingMode().indexOf(\"vertical\")?\"vertical\":\"horizontal\";this.layoutStyle(\"paginated\"),\"rtl\"===s&&\"horizontal\"===c&&this.direction(s),this.width(t),this.height(e),this.viewport({width:t,height:e,scale:1,scalable:\"no\"}),this.css(\"overflow-y\",\"hidden\"),this.css(\"margin\",\"0\",!0),\"vertical\"===c?(this.css(\"padding-top\",n/2+\"px\",!0),this.css(\"padding-bottom\",n/2+\"px\",!0),this.css(\"padding-left\",\"20px\"),this.css(\"padding-right\",\"20px\"),this.css(o,\"vertical\")):(this.css(\"padding-top\",\"20px\"),this.css(\"padding-bottom\",\"20px\"),this.css(\"padding-left\",n/2+\"px\",!0),this.css(\"padding-right\",n/2+\"px\",!0),this.css(o,\"horizontal\")),this.css(\"box-sizing\",\"border-box\"),this.css(\"max-width\",\"inherit\"),this.css(l,\"auto\"),this.css(a,n+\"px\"),this.css(h,i+\"px\"),this.css(\"-webkit-line-box-contain\",\"block glyphs replaced\")}scaler(t,e,i){var n=\"scale(\"+t+\")\",s=\"\";this.css(\"transform-origin\",\"top left\"),(e>=0||i>=0)&&(s=\" translate(\"+(e||0)+\"px, \"+(i||0)+\"px )\"),this.css(\"transform\",n+s)}fit(t,e,i){var n=this.viewport(),s=parseInt(n.width),r=parseInt(n.height),o=t/s,a=e/r,h=o<a?o:a;if(this.layoutStyle(\"paginated\"),this.width(s),this.height(r),this.overflow(\"hidden\"),this.scaler(h,0,0),this.css(\"background-size\",s*h+\"px \"+r*h+\"px\"),this.css(\"background-color\",\"transparent\"),i&&i.properties.includes(\"page-spread-left\")){var l=t-s*h;this.css(\"margin-left\",l+\"px\")}}direction(t){this.documentElement&&(this.documentElement.style.direction=t)}mapPage(t,e,i,n,s){return new a.a(e,s).page(this,t,i,n)}linksHandler(){Object(h.c)(this.content,t=>{this.emit(l.c.CONTENTS.LINK_CLICKED,t)})}writingMode(t){let e=Object(r.prefixed)(\"writing-mode\");return t&&this.documentElement&&(this.documentElement.style[e]=t),this.window.getComputedStyle(this.documentElement)[e]||\"\"}layoutStyle(t){return t&&(this._layoutStyle=t,navigator.epubReadingSystem.layoutStyle=this._layoutStyle),this._layoutStyle||\"paginated\"}epubReadingSystem(t,e){return navigator.epubReadingSystem={name:t,version:e,layoutStyle:this.layoutStyle(),hasFeature:function(t){switch(t){case\"dom-manipulation\":case\"layout-changes\":case\"touch-events\":case\"mouse-events\":case\"keyboard-events\":return!0;case\"spine-scripting\":default:return!1}}},navigator.epubReadingSystem}destroy(){this.removeListeners()}}s()(f.prototype),e.a=f},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Underline=e.Highlight=e.Mark=e.Pane=void 0;var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),s=o(i(49)),r=o(i(50));function o(t){return t&&t.__esModule?t:{default:t}}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function h(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.Pane=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body;l(this,t),this.target=e,this.element=s.default.createElement(\"svg\"),this.marks=[],this.element.style.position=\"absolute\",this.element.setAttribute(\"pointer-events\",\"none\"),r.default.proxyMouse(this.target,this.marks),this.container=i,this.container.appendChild(this.element),this.render()}return n(t,[{key:\"addMark\",value:function(t){var e=s.default.createElement(\"g\");return this.element.appendChild(e),t.bind(e,this.container),this.marks.push(t),t.render(),t}},{key:\"removeMark\",value:function(t){var e=this.marks.indexOf(t);if(-1!==e){var i=t.unbind();this.element.removeChild(i),this.marks.splice(e,1)}}},{key:\"render\",value:function(){var t,e,i,n;!function(t,e){t.style.setProperty(\"top\",e.top+\"px\",\"important\"),t.style.setProperty(\"left\",e.left+\"px\",\"important\"),t.style.setProperty(\"height\",e.height+\"px\",\"important\"),t.style.setProperty(\"width\",e.width+\"px\",\"important\")}(this.element,(t=this.target,e=this.container,i=e.getBoundingClientRect(),n=t.getBoundingClientRect(),{top:n.top-i.top,left:n.left-i.left,height:t.scrollHeight,width:t.scrollWidth}));var s=!0,r=!1,o=void 0;try{for(var a,h=this.marks[Symbol.iterator]();!(s=(a=h.next()).done);s=!0){a.value.render()}}catch(t){r=!0,o=t}finally{try{!s&&h.return&&h.return()}finally{if(r)throw o}}}}]),t}();var c=e.Mark=function(){function t(){l(this,t),this.element=null}return n(t,[{key:\"bind\",value:function(t,e){this.element=t,this.container=e}},{key:\"unbind\",value:function(){var t=this.element;return this.element=null,t}},{key:\"render\",value:function(){}},{key:\"dispatchEvent\",value:function(t){this.element&&this.element.dispatchEvent(t)}},{key:\"getBoundingClientRect\",value:function(){return this.element.getBoundingClientRect()}},{key:\"getClientRects\",value:function(){for(var t=[],e=this.element.firstChild;e;)t.push(e.getBoundingClientRect()),e=e.nextSibling;return t}},{key:\"filteredRanges\",value:function(){var t=Array.from(this.range.getClientRects());return t.filter((function(e){for(var i=0;i<t.length;i++){if(t[i]===e)return!0;if(n=t[i],(s=e).right<=n.right&&s.left>=n.left&&s.top>=n.top&&s.bottom<=n.bottom)return!1}var n,s;return!0}))}}]),t}(),u=e.Highlight=function(t){function e(t,i,n,s){l(this,e);var r=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.range=t,r.className=i,r.data=n||{},r.attributes=s||{},r}return h(e,t),n(e,[{key:\"bind\",value:function(t,i){for(var n in function t(e,i,n){null===e&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,i);if(void 0===s){var r=Object.getPrototypeOf(e);return null===r?void 0:t(r,i,n)}if(\"value\"in s)return s.value;var o=s.get;return void 0!==o?o.call(n):void 0}(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),\"bind\",this).call(this,t,i),this.data)this.data.hasOwnProperty(n)&&(this.element.dataset[n]=this.data[n]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&this.element.setAttribute(n,this.attributes[n]);this.className&&this.element.classList.add(this.className)}},{key:\"render\",value:function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(var t=this.element.ownerDocument.createDocumentFragment(),e=this.filteredRanges(),i=this.element.getBoundingClientRect(),n=this.container.getBoundingClientRect(),r=0,o=e.length;r<o;r++){var a=e[r],h=s.default.createElement(\"rect\");h.setAttribute(\"x\",a.left-i.left+n.left),h.setAttribute(\"y\",a.top-i.top+n.top),h.setAttribute(\"height\",a.height),h.setAttribute(\"width\",a.width),t.appendChild(h)}this.element.appendChild(t)}}]),e}(c);e.Underline=function(t){function e(t,i,n,s){return l(this,e),a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,n,s))}return h(e,t),n(e,[{key:\"render\",value:function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(var t=this.element.ownerDocument.createDocumentFragment(),e=this.filteredRanges(),i=this.element.getBoundingClientRect(),n=this.container.getBoundingClientRect(),r=0,o=e.length;r<o;r++){var a=e[r],h=s.default.createElement(\"rect\");h.setAttribute(\"x\",a.left-i.left+n.left),h.setAttribute(\"y\",a.top-i.top+n.top),h.setAttribute(\"height\",a.height),h.setAttribute(\"width\",a.width),h.setAttribute(\"fill\",\"none\");var l=s.default.createElement(\"line\");l.setAttribute(\"x1\",a.left-i.left+n.left),l.setAttribute(\"x2\",a.left-i.left+n.left+a.width),l.setAttribute(\"y1\",a.top-i.top+n.top+a.height-1),l.setAttribute(\"y2\",a.top-i.top+n.top+a.height-1),l.setAttribute(\"stroke-width\",1),l.setAttribute(\"stroke\",\"black\"),l.setAttribute(\"stroke-linecap\",\"square\"),t.appendChild(h),t.appendChild(l)}this.element.appendChild(t)}}]),e}(u)},function(t,e,i){\"use strict\";function n(t,e){return void 0===e&&(e=Object),e&&\"function\"==typeof e.freeze?e.freeze(t):t}var s=n({HTML:\"text/html\",isHTML:function(t){return t===s.HTML},XML_APPLICATION:\"application/xml\",XML_TEXT:\"text/xml\",XML_XHTML_APPLICATION:\"application/xhtml+xml\",XML_SVG_IMAGE:\"image/svg+xml\"}),r=n({HTML:\"http://www.w3.org/1999/xhtml\",isHTML:function(t){return t===r.HTML},SVG:\"http://www.w3.org/2000/svg\",XML:\"http://www.w3.org/XML/1998/namespace\",XMLNS:\"http://www.w3.org/2000/xmlns/\"});e.freeze=n,e.MIME_TYPE=s,e.NAMESPACE=r},function(t,e,i){var n=i(25);e.DOMImplementation=n.DOMImplementation,e.XMLSerializer=n.XMLSerializer,e.DOMParser=i(46).DOMParser},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(6),a=i(2),h=i(9),l=i(1);class c{constructor(t){this.settings=t,this.name=t.layout||\"reflowable\",this._spread=\"none\"!==t.spread,this._minSpreadWidth=t.minSpreadWidth||800,this._evenSpreads=t.evenSpreads||!1,\"scrolled\"===t.flow||\"scrolled-continuous\"===t.flow||\"scrolled-doc\"===t.flow?this._flow=\"scrolled\":this._flow=\"paginated\",this.width=0,this.height=0,this.spreadWidth=0,this.delta=0,this.columnWidth=0,this.gap=0,this.divisor=1,this.props={name:this.name,spread:this._spread,flow:this._flow,width:0,height:0,spreadWidth:0,delta:0,columnWidth:0,gap:0,divisor:1}}flow(t){return void 0!==t&&(this._flow=\"scrolled\"===t||\"scrolled-continuous\"===t||\"scrolled-doc\"===t?\"scrolled\":\"paginated\",this.update({flow:this._flow})),this._flow}spread(t,e){return t&&(this._spread=\"none\"!==t,this.update({spread:this._spread})),e>=0&&(this._minSpreadWidth=e),this._spread}calculate(t,e,i){var n,s,r,o,a=1,h=i||0,l=t,c=e,u=Math.floor(l/12);a=this._spread&&l>=this._minSpreadWidth?2:1,\"reflowable\"!==this.name||\"paginated\"!==this._flow||i>=0||(h=u%2==0?u:u-1),\"pre-paginated\"===this.name&&(h=0),a>1?r=(n=l/a-h)+h:(n=l,r=l),\"pre-paginated\"===this.name&&a>1&&(l=n),s=n*a+h,o=l,this.width=l,this.height=c,this.spreadWidth=s,this.pageWidth=r,this.delta=o,this.columnWidth=n,this.gap=h,this.divisor=a,this.update({width:l,height:c,spreadWidth:s,pageWidth:r,delta:o,columnWidth:n,gap:h,divisor:a})}format(t,e,i){return\"pre-paginated\"===this.name?t.fit(this.columnWidth,this.height,e):\"paginated\"===this._flow?t.columns(this.width,this.height,this.columnWidth,this.gap,this.settings.direction):i&&\"horizontal\"===i?t.size(null,this.height):t.size(this.width,null)}count(t,e){let i,n;return\"pre-paginated\"===this.name?(i=1,n=1):\"paginated\"===this._flow?(e=e||this.delta,i=Math.ceil(t/e),n=i*this.divisor):(e=e||this.height,i=Math.ceil(t/e),n=i),{spreads:i,pages:n}}update(t){if(Object.keys(t).forEach(e=>{this.props[e]===t[e]&&delete t[e]}),Object.keys(t).length>0){let e=Object(r.extend)(this.props,t);this.emit(l.c.LAYOUT.UPDATED,e,t)}}}s()(c.prototype);var u=c,d=i(5);var f=class{constructor(t){this.rendition=t,this._themes={default:{rules:{},url:\"\",serialized:\"\"}},this._overrides={},this._current=\"default\",this._injected=[],this.rendition.hooks.content.register(this.inject.bind(this)),this.rendition.hooks.content.register(this.overrides.bind(this))}register(){if(0!==arguments.length)return 1===arguments.length&&\"object\"==typeof arguments[0]?this.registerThemes(arguments[0]):1===arguments.length&&\"string\"==typeof arguments[0]?this.default(arguments[0]):2===arguments.length&&\"string\"==typeof arguments[1]?this.registerUrl(arguments[0],arguments[1]):2===arguments.length&&\"object\"==typeof arguments[1]?this.registerRules(arguments[0],arguments[1]):void 0}default(t){if(t)return\"string\"==typeof t?this.registerUrl(\"default\",t):\"object\"==typeof t?this.registerRules(\"default\",t):void 0}registerThemes(t){for(var e in t)t.hasOwnProperty(e)&&(\"string\"==typeof t[e]?this.registerUrl(e,t[e]):this.registerRules(e,t[e]))}registerCss(t,e){this._themes[t]={serialized:e},(this._injected[t]||\"default\"==t)&&this.update(t)}registerUrl(t,e){var i=new d.a(e);this._themes[t]={url:i.toString()},(this._injected[t]||\"default\"==t)&&this.update(t)}registerRules(t,e){this._themes[t]={rules:e},(this._injected[t]||\"default\"==t)&&this.update(t)}select(t){var e=this._current;this._current=t,this.update(t),this.rendition.getContents().forEach(i=>{i.removeClass(e),i.addClass(t)})}update(t){this.rendition.getContents().forEach(e=>{this.add(t,e)})}inject(t){var e,i=[],n=this._themes;for(var s in n)!n.hasOwnProperty(s)||s!==this._current&&\"default\"!==s||(((e=n[s]).rules&&Object.keys(e.rules).length>0||e.url&&-1===i.indexOf(e.url))&&this.add(s,t),this._injected.push(s));\"default\"!=this._current&&t.addClass(this._current)}add(t,e){var i=this._themes[t];i&&e&&(i.url?e.addStylesheet(i.url):i.serialized?(e.addStylesheetCss(i.serialized,t),i.injected=!0):i.rules&&(e.addStylesheetRules(i.rules,t),i.injected=!0))}override(t,e,i){var n=this.rendition.getContents();this._overrides[t]={value:e,priority:!0===i},n.forEach(e=>{e.css(t,this._overrides[t].value,this._overrides[t].priority)})}removeOverride(t){var e=this.rendition.getContents();delete this._overrides[t],e.forEach(e=>{e.css(t)})}overrides(t){var e=this._overrides;for(var i in e)e.hasOwnProperty(i)&&t.css(i,e[i].value,e[i].priority)}fontSize(t){this.override(\"font-size\",t)}font(t){this.override(\"font-family\",t,!0)}destroy(){this.rendition=void 0,this._themes=void 0,this._overrides=void 0,this._current=void 0,this._injected=void 0}};i(12);class p{constructor({type:t,cfiRange:e,data:i,sectionIndex:n,cb:s,className:r,styles:o}){this.type=t,this.cfiRange=e,this.data=i,this.sectionIndex=n,this.mark=void 0,this.cb=s,this.className=r,this.styles=o}update(t){this.data=t}attach(t){let e,{cfiRange:i,data:n,type:s,mark:r,cb:o,className:a,styles:h}=this;return\"highlight\"===s?e=t.highlight(i,n,o,a,h):\"underline\"===s?e=t.underline(i,n,o,a,h):\"mark\"===s&&(e=t.mark(i,n,o)),this.mark=e,this.emit(l.c.ANNOTATION.ATTACH,e),e}detach(t){let e,{cfiRange:i,type:n}=this;return t&&(\"highlight\"===n?e=t.unhighlight(i):\"underline\"===n?e=t.ununderline(i):\"mark\"===n&&(e=t.unmark(i))),this.mark=void 0,this.emit(l.c.ANNOTATION.DETACH,e),e}text(){}}s()(p.prototype);var g=class{constructor(t){this.rendition=t,this.highlights=[],this.underlines=[],this.marks=[],this._annotations={},this._annotationsBySectionIndex={},this.rendition.hooks.render.register(this.inject.bind(this)),this.rendition.hooks.unloaded.register(this.clear.bind(this))}add(t,e,i,n,s,r){let o=encodeURI(e+t),h=new a.a(e).spinePos,l=new p({type:t,cfiRange:e,data:i,sectionIndex:h,cb:n,className:s,styles:r});return this._annotations[o]=l,h in this._annotationsBySectionIndex?this._annotationsBySectionIndex[h].push(o):this._annotationsBySectionIndex[h]=[o],this.rendition.views().forEach(t=>{l.sectionIndex===t.index&&l.attach(t)}),l}remove(t,e){let i=encodeURI(t+e);if(i in this._annotations){let t=this._annotations[i];if(e&&t.type!==e)return;this.rendition.views().forEach(e=>{this._removeFromAnnotationBySectionIndex(t.sectionIndex,i),t.sectionIndex===e.index&&t.detach(e)}),delete this._annotations[i]}}_removeFromAnnotationBySectionIndex(t,e){this._annotationsBySectionIndex[t]=this._annotationsAt(t).filter(t=>t!==e)}_annotationsAt(t){return this._annotationsBySectionIndex[t]}highlight(t,e,i,n,s){return this.add(\"highlight\",t,e,i,n,s)}underline(t,e,i,n,s){return this.add(\"underline\",t,e,i,n,s)}mark(t,e,i){return this.add(\"mark\",t,e,i)}each(){return this._annotations.forEach.apply(this._annotations,arguments)}inject(t){let e=t.index;if(e in this._annotationsBySectionIndex){this._annotationsBySectionIndex[e].forEach(e=>{this._annotations[e].attach(t)})}}clear(t){let e=t.index;if(e in this._annotationsBySectionIndex){this._annotationsBySectionIndex[e].forEach(e=>{this._annotations[e].detach(t)})}}show(){}hide(){}},m=i(20),v=i(10),y=i(22);class b{constructor(t,e){this.settings=Object(r.extend)(this.settings||{},{width:null,height:null,ignoreClass:\"\",manager:\"default\",view:\"iframe\",flow:null,layout:null,spread:null,minSpreadWidth:800,stylesheet:null,resizeOnOrientationChange:!0,script:null,snap:!1,defaultDirection:\"ltr\",allowScriptedContent:!1,allowPopups:!1}),Object(r.extend)(this.settings,e),\"object\"==typeof this.settings.manager&&(this.manager=this.settings.manager),this.book=t,this.hooks={},this.hooks.display=new o.a(this),this.hooks.serialize=new o.a(this),this.hooks.content=new o.a(this),this.hooks.unloaded=new o.a(this),this.hooks.layout=new o.a(this),this.hooks.render=new o.a(this),this.hooks.show=new o.a(this),this.hooks.content.register(this.handleLinks.bind(this)),this.hooks.content.register(this.passEvents.bind(this)),this.hooks.content.register(this.adjustImages.bind(this)),this.book.spine.hooks.content.register(this.injectIdentifier.bind(this)),this.settings.stylesheet&&this.book.spine.hooks.content.register(this.injectStylesheet.bind(this)),this.settings.script&&this.book.spine.hooks.content.register(this.injectScript.bind(this)),this.themes=new f(this),this.annotations=new g(this),this.epubcfi=new a.a,this.q=new h.a(this),this.location=void 0,this.q.enqueue(this.book.opened),this.starting=new r.defer,this.started=this.starting.promise,this.q.enqueue(this.start)}setManager(t){this.manager=t}requireManager(t){return\"string\"==typeof t&&\"default\"===t?v.a:\"string\"==typeof t&&\"continuous\"===t?y.a:t}requireView(t){return\"string\"==typeof t&&\"iframe\"===t?m.a:t}start(){switch(this.settings.layout||\"pre-paginated\"!==this.book.package.metadata.layout&&\"true\"!==this.book.displayOptions.fixedLayout||(this.settings.layout=\"pre-paginated\"),this.book.package.metadata.spread){case\"none\":this.settings.spread=\"none\";break;case\"both\":this.settings.spread=!0}this.manager||(this.ViewManager=this.requireManager(this.settings.manager),this.View=this.requireView(this.settings.view),this.manager=new this.ViewManager({view:this.View,queue:this.q,request:this.book.load.bind(this.book),settings:this.settings})),this.direction(this.book.package.metadata.direction||this.settings.defaultDirection),this.settings.globalLayoutProperties=this.determineLayoutProperties(this.book.package.metadata),this.flow(this.settings.globalLayoutProperties.flow),this.layout(this.settings.globalLayoutProperties),this.manager.on(l.c.MANAGERS.ADDED,this.afterDisplayed.bind(this)),this.manager.on(l.c.MANAGERS.REMOVED,this.afterRemoved.bind(this)),this.manager.on(l.c.MANAGERS.RESIZED,this.onResized.bind(this)),this.manager.on(l.c.MANAGERS.ORIENTATION_CHANGE,this.onOrientationChange.bind(this)),this.manager.on(l.c.MANAGERS.SCROLLED,this.reportLocation.bind(this)),this.emit(l.c.RENDITION.STARTED),this.starting.resolve()}attachTo(t){return this.q.enqueue(function(){this.manager.render(t,{width:this.settings.width,height:this.settings.height}),this.emit(l.c.RENDITION.ATTACHED)}.bind(this))}display(t){return this.displaying&&this.displaying.resolve(),this.q.enqueue(this._display,t)}_display(t){if(this.book){this.epubcfi.isCfiString(t);var e,i=new r.defer,n=i.promise;return this.displaying=i,this.book.locations.length()&&Object(r.isFloat)(t)&&(t=this.book.locations.cfiFromPercentage(parseFloat(t))),(e=this.book.spine.get(t))?(this.manager.display(e,t).then(()=>{i.resolve(e),this.displaying=void 0,this.emit(l.c.RENDITION.DISPLAYED,e),this.reportLocation()},t=>{this.emit(l.c.RENDITION.DISPLAY_ERROR,t)}),n):(i.reject(new Error(\"No Section Found\")),n)}}afterDisplayed(t){t.on(l.c.VIEWS.MARK_CLICKED,(e,i)=>this.triggerMarkEvent(e,i,t.contents)),this.hooks.render.trigger(t,this).then(()=>{t.contents?this.hooks.content.trigger(t.contents,this).then(()=>{this.emit(l.c.RENDITION.RENDERED,t.section,t)}):this.emit(l.c.RENDITION.RENDERED,t.section,t)})}afterRemoved(t){this.hooks.unloaded.trigger(t,this).then(()=>{this.emit(l.c.RENDITION.REMOVED,t.section,t)})}onResized(t,e){this.emit(l.c.RENDITION.RESIZED,{width:t.width,height:t.height},e),this.location&&this.location.start&&this.display(e||this.location.start.cfi)}onOrientationChange(t){this.emit(l.c.RENDITION.ORIENTATION_CHANGE,t)}moveTo(t){this.manager.moveTo(t)}resize(t,e,i){t&&(this.settings.width=t),e&&(this.settings.height=e),this.manager.resize(t,e,i)}clear(){this.manager.clear()}next(){return this.q.enqueue(this.manager.next.bind(this.manager)).then(this.reportLocation.bind(this))}prev(){return this.q.enqueue(this.manager.prev.bind(this.manager)).then(this.reportLocation.bind(this))}determineLayoutProperties(t){var e=this.settings.layout||t.layout||\"reflowable\",i=this.settings.spread||t.spread||\"auto\",n=this.settings.orientation||t.orientation||\"auto\",s=this.settings.flow||t.flow||\"auto\",r=t.viewport||\"\",o=this.settings.minSpreadWidth||t.minSpreadWidth||800,a=this.settings.direction||t.direction||\"ltr\";return(0===this.settings.width||this.settings.width>0)&&(0===this.settings.height||this.settings.height),{layout:e,spread:i,orientation:n,flow:s,viewport:r,minSpreadWidth:o,direction:a}}flow(t){var e=t;\"scrolled\"!==t&&\"scrolled-doc\"!==t&&\"scrolled-continuous\"!==t||(e=\"scrolled\"),\"auto\"!==t&&\"paginated\"!==t||(e=\"paginated\"),this.settings.flow=t,this._layout&&this._layout.flow(e),this.manager&&this._layout&&this.manager.applyLayout(this._layout),this.manager&&this.manager.updateFlow(e),this.manager&&this.manager.isRendered()&&this.location&&(this.manager.clear(),this.display(this.location.start.cfi))}layout(t){return t&&(this._layout=new u(t),this._layout.spread(t.spread,this.settings.minSpreadWidth),this._layout.on(l.c.LAYOUT.UPDATED,(t,e)=>{this.emit(l.c.RENDITION.LAYOUT,t,e)})),this.manager&&this._layout&&this.manager.applyLayout(this._layout),this._layout}spread(t,e){this.settings.spread=t,e&&(this.settings.minSpreadWidth=e),this._layout&&this._layout.spread(t,e),this.manager&&this.manager.isRendered()&&this.manager.updateLayout()}direction(t){this.settings.direction=t||\"ltr\",this.manager&&this.manager.direction(this.settings.direction),this.manager&&this.manager.isRendered()&&this.location&&(this.manager.clear(),this.display(this.location.start.cfi))}reportLocation(){return this.q.enqueue(function(){requestAnimationFrame(function(){var t=this.manager.currentLocation();if(t&&t.then&&\"function\"==typeof t.then)t.then(function(t){let e=this.located(t);e&&e.start&&e.end&&(this.location=e,this.emit(l.c.RENDITION.LOCATION_CHANGED,{index:this.location.start.index,href:this.location.start.href,start:this.location.start.cfi,end:this.location.end.cfi,percentage:this.location.start.percentage}),this.emit(l.c.RENDITION.RELOCATED,this.location))}.bind(this));else if(t){let e=this.located(t);if(!e||!e.start||!e.end)return;this.location=e,this.emit(l.c.RENDITION.LOCATION_CHANGED,{index:this.location.start.index,href:this.location.start.href,start:this.location.start.cfi,end:this.location.end.cfi,percentage:this.location.start.percentage}),this.emit(l.c.RENDITION.RELOCATED,this.location)}}.bind(this))}.bind(this))}currentLocation(){var t=this.manager.currentLocation();if(t&&t.then&&\"function\"==typeof t.then)t.then(function(t){return this.located(t)}.bind(this));else if(t){return this.located(t)}}located(t){if(!t.length)return{};let e=t[0],i=t[t.length-1],n={start:{index:e.index,href:e.href,cfi:e.mapping.start,displayed:{page:e.pages[0]||1,total:e.totalPages}},end:{index:i.index,href:i.href,cfi:i.mapping.end,displayed:{page:i.pages[i.pages.length-1]||1,total:i.totalPages}}},s=this.book.locations.locationFromCfi(e.mapping.start),r=this.book.locations.locationFromCfi(i.mapping.end);null!=s&&(n.start.location=s,n.start.percentage=this.book.locations.percentageFromLocation(s)),null!=r&&(n.end.location=r,n.end.percentage=this.book.locations.percentageFromLocation(r));let o=this.book.pageList.pageFromCfi(e.mapping.start),a=this.book.pageList.pageFromCfi(i.mapping.end);return-1!=o&&(n.start.page=o),-1!=a&&(n.end.page=a),i.index===this.book.spine.last().index&&n.end.displayed.page>=n.end.displayed.total&&(n.atEnd=!0),e.index===this.book.spine.first().index&&1===n.start.displayed.page&&(n.atStart=!0),n}destroy(){this.manager&&this.manager.destroy(),this.book=void 0}passEvents(t){l.a.forEach(e=>{t.on(e,e=>this.triggerViewEvent(e,t))}),t.on(l.c.CONTENTS.SELECTED,e=>this.triggerSelectedEvent(e,t))}triggerViewEvent(t,e){this.emit(t.type,t,e)}triggerSelectedEvent(t,e){this.emit(l.c.RENDITION.SELECTED,t,e)}triggerMarkEvent(t,e,i){this.emit(l.c.RENDITION.MARK_CLICKED,t,e,i)}getRange(t,e){var i=new a.a(t),n=this.manager.visible().filter((function(t){if(i.spinePos===t.index)return!0}));if(n.length)return n[0].contents.range(i,e)}adjustImages(t){if(\"pre-paginated\"===this._layout.name)return new Promise((function(t){t()}));let e=t.window.getComputedStyle(t.content,null),i=.95*(t.content.offsetHeight-(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom))),n=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);return t.addStylesheetRules({img:{\"max-width\":(this._layout.columnWidth?this._layout.columnWidth-n+\"px\":\"100%\")+\"!important\",\"max-height\":i+\"px!important\",\"object-fit\":\"contain\",\"page-break-inside\":\"avoid\",\"break-inside\":\"avoid\",\"box-sizing\":\"border-box\"},svg:{\"max-width\":(this._layout.columnWidth?this._layout.columnWidth-n+\"px\":\"100%\")+\"!important\",\"max-height\":i+\"px!important\",\"page-break-inside\":\"avoid\",\"break-inside\":\"avoid\"}}),new Promise((function(t,e){setTimeout((function(){t()}),1)}))}getContents(){return this.manager?this.manager.getContents():[]}views(){return(this.manager?this.manager.views:void 0)||[]}handleLinks(t){t&&t.on(l.c.CONTENTS.LINK_CLICKED,t=>{let e=this.book.path.relative(t);this.display(e)})}injectStylesheet(t,e){let i=t.createElement(\"link\");i.setAttribute(\"type\",\"text/css\"),i.setAttribute(\"rel\",\"stylesheet\"),i.setAttribute(\"href\",this.settings.stylesheet),t.getElementsByTagName(\"head\")[0].appendChild(i)}injectScript(t,e){let i=t.createElement(\"script\");i.setAttribute(\"type\",\"text/javascript\"),i.setAttribute(\"src\",this.settings.script),i.textContent=\" \",t.getElementsByTagName(\"head\")[0].appendChild(i)}injectIdentifier(t,e){let i=this.book.packaging.metadata.identifier,n=t.createElement(\"meta\");n.setAttribute(\"name\",\"dc.relation.ispartof\"),i&&n.setAttribute(\"content\",i),t.getElementsByTagName(\"head\")[0].appendChild(n)}}s()(b.prototype);e.a=b},function(t,e){var i;i=function(){return this}();try{i=i||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(i=window)}t.exports=i},function(t,e,i){\"use strict\";var n=i(38)();t.exports=function(t){return t!==n&&null!==t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(2),a=i(12),h=i(1),l=i(13);class c{constructor(t,e){this.settings=Object(r.extend)({ignoreClass:\"\",axis:void 0,direction:void 0,width:0,height:0,layout:void 0,globalLayoutProperties:{},method:void 0,forceRight:!1,allowScriptedContent:!1,allowPopups:!1},e||{}),this.id=\"epubjs-view-\"+Object(r.uuid)(),this.section=t,this.index=t.index,this.element=this.container(this.settings.axis),this.added=!1,this.displayed=!1,this.rendered=!1,this.fixedWidth=0,this.fixedHeight=0,this.epubcfi=new o.a,this.layout=this.settings.layout,this.pane=void 0,this.highlights={},this.underlines={},this.marks={}}container(t){var e=document.createElement(\"div\");return e.classList.add(\"epub-view\"),e.style.height=\"0px\",e.style.width=\"0px\",e.style.overflow=\"hidden\",e.style.position=\"relative\",e.style.display=\"block\",e.style.flex=t&&\"horizontal\"==t?\"none\":\"initial\",e}create(){return this.iframe||(this.element||(this.element=this.createContainer()),this.iframe=document.createElement(\"iframe\"),this.iframe.id=this.id,this.iframe.scrolling=\"no\",this.iframe.style.overflow=\"hidden\",this.iframe.seamless=\"seamless\",this.iframe.style.border=\"none\",this.iframe.sandbox=\"allow-same-origin\",this.settings.allowScriptedContent&&(this.iframe.sandbox+=\" allow-scripts\"),this.settings.allowPopups&&(this.iframe.sandbox+=\" allow-popups\"),this.iframe.setAttribute(\"enable-annotation\",\"true\"),this.resizing=!0,this.element.style.visibility=\"hidden\",this.iframe.style.visibility=\"hidden\",this.iframe.style.width=\"0\",this.iframe.style.height=\"0\",this._width=0,this._height=0,this.element.setAttribute(\"ref\",this.index),this.added=!0,this.elementBounds=Object(r.bounds)(this.element),\"srcdoc\"in this.iframe?this.supportsSrcdoc=!0:this.supportsSrcdoc=!1,this.settings.method||(this.settings.method=this.supportsSrcdoc?\"srcdoc\":\"write\")),this.iframe}render(t,e){return this.create(),this.size(),this.sectionRender||(this.sectionRender=this.section.render(t)),this.sectionRender.then(function(t){return this.load(t)}.bind(this)).then(function(){let t,e=this.contents.writingMode();return t=\"scrolled\"===this.settings.flow?0===e.indexOf(\"vertical\")?\"horizontal\":\"vertical\":0===e.indexOf(\"vertical\")?\"vertical\":\"horizontal\",0===e.indexOf(\"vertical\")&&\"paginated\"===this.settings.flow&&(this.layout.delta=this.layout.height),this.setAxis(t),this.emit(h.c.VIEWS.AXIS,t),this.setWritingMode(e),this.emit(h.c.VIEWS.WRITING_MODE,e),this.layout.format(this.contents,this.section,this.axis),this.addListeners(),new Promise((t,e)=>{this.expand(),this.settings.forceRight&&(this.element.style.marginLeft=this.width()+\"px\"),t()})}.bind(this),function(t){return this.emit(h.c.VIEWS.LOAD_ERROR,t),new Promise((e,i)=>{i(t)})}.bind(this)).then(function(){this.emit(h.c.VIEWS.RENDERED,this.section)}.bind(this))}reset(){this.iframe&&(this.iframe.style.width=\"0\",this.iframe.style.height=\"0\",this._width=0,this._height=0,this._textWidth=void 0,this._contentWidth=void 0,this._textHeight=void 0,this._contentHeight=void 0),this._needsReframe=!0}size(t,e){var i=t||this.settings.width,n=e||this.settings.height;\"pre-paginated\"===this.layout.name?this.lock(\"both\",i,n):\"horizontal\"===this.settings.axis?this.lock(\"height\",i,n):this.lock(\"width\",i,n),this.settings.width=i,this.settings.height=n}lock(t,e,i){var n,s=Object(r.borders)(this.element);n=this.iframe?Object(r.borders)(this.iframe):{width:0,height:0},\"width\"==t&&Object(r.isNumber)(e)&&(this.lockedWidth=e-s.width-n.width),\"height\"==t&&Object(r.isNumber)(i)&&(this.lockedHeight=i-s.height-n.height),\"both\"===t&&Object(r.isNumber)(e)&&Object(r.isNumber)(i)&&(this.lockedWidth=e-s.width-n.width,this.lockedHeight=i-s.height-n.height),this.displayed&&this.iframe&&this.expand()}expand(t){var e,i=this.lockedWidth,n=this.lockedHeight;this.iframe&&!this._expanding&&(this._expanding=!0,\"pre-paginated\"===this.layout.name?(i=this.layout.columnWidth,n=this.layout.height):\"horizontal\"===this.settings.axis?((i=this.contents.textWidth())%this.layout.pageWidth>0&&(i=Math.ceil(i/this.layout.pageWidth)*this.layout.pageWidth),this.settings.forceEvenPages&&(e=i/this.layout.pageWidth,this.layout.divisor>1&&\"reflowable\"===this.layout.name&&e%2>0&&(i+=this.layout.pageWidth))):\"vertical\"===this.settings.axis&&(n=this.contents.textHeight(),\"paginated\"===this.settings.flow&&n%this.layout.height>0&&(n=Math.ceil(n/this.layout.height)*this.layout.height)),(this._needsReframe||i!=this._width||n!=this._height)&&this.reframe(i,n),this._expanding=!1)}reframe(t,e){var i;Object(r.isNumber)(t)&&(this.element.style.width=t+\"px\",this.iframe.style.width=t+\"px\",this._width=t),Object(r.isNumber)(e)&&(this.element.style.height=e+\"px\",this.iframe.style.height=e+\"px\",this._height=e),i={width:t,height:e,widthDelta:this.prevBounds?t-this.prevBounds.width:t,heightDelta:this.prevBounds?e-this.prevBounds.height:e},this.pane&&this.pane.render(),requestAnimationFrame(()=>{let t;for(let e in this.marks)this.marks.hasOwnProperty(e)&&(t=this.marks[e],this.placeMark(t.element,t.range))}),this.onResize(this,i),this.emit(h.c.VIEWS.RESIZED,i),this.prevBounds=i,this.elementBounds=Object(r.bounds)(this.element)}load(t){var e=new r.defer,i=e.promise;if(!this.iframe)return e.reject(new Error(\"No Iframe Available\")),i;if(this.iframe.onload=function(t){this.onLoad(t,e)}.bind(this),\"blobUrl\"===this.settings.method)this.blobUrl=Object(r.createBlobUrl)(t,\"application/xhtml+xml\"),this.iframe.src=this.blobUrl,this.element.appendChild(this.iframe);else if(\"srcdoc\"===this.settings.method)this.iframe.srcdoc=t,this.element.appendChild(this.iframe);else{if(this.element.appendChild(this.iframe),this.document=this.iframe.contentDocument,!this.document)return e.reject(new Error(\"No Document Available\")),i;if(this.iframe.contentDocument.open(),window.MSApp&&MSApp.execUnsafeLocalFunction){var n=this;MSApp.execUnsafeLocalFunction((function(){n.iframe.contentDocument.write(t)}))}else this.iframe.contentDocument.write(t);this.iframe.contentDocument.close()}return i}onLoad(t,e){this.window=this.iframe.contentWindow,this.document=this.iframe.contentDocument,this.contents=new a.a(this.document,this.document.body,this.section.cfiBase,this.section.index),this.rendering=!1;var i=this.document.querySelector(\"link[rel='canonical']\");i?i.setAttribute(\"href\",this.section.canonical):((i=this.document.createElement(\"link\")).setAttribute(\"rel\",\"canonical\"),i.setAttribute(\"href\",this.section.canonical),this.document.querySelector(\"head\").appendChild(i)),this.contents.on(h.c.CONTENTS.EXPAND,()=>{this.displayed&&this.iframe&&(this.expand(),this.contents&&this.layout.format(this.contents))}),this.contents.on(h.c.CONTENTS.RESIZE,t=>{this.displayed&&this.iframe&&(this.expand(),this.contents&&this.layout.format(this.contents))}),e.resolve(this.contents)}setLayout(t){this.layout=t,this.contents&&(this.layout.format(this.contents),this.expand())}setAxis(t){this.settings.axis=t,this.element.style.flex=\"horizontal\"==t?\"none\":\"initial\",this.size()}setWritingMode(t){this.writingMode=t}addListeners(){}removeListeners(t){}display(t){var e=new r.defer;return this.displayed?e.resolve(this):this.render(t).then(function(){this.emit(h.c.VIEWS.DISPLAYED,this),this.onDisplayed(this),this.displayed=!0,e.resolve(this)}.bind(this),(function(t){e.reject(t,this)})),e.promise}show(){this.element.style.visibility=\"visible\",this.iframe&&(this.iframe.style.visibility=\"visible\",this.iframe.style.transform=\"translateZ(0)\",this.iframe.offsetWidth,this.iframe.style.transform=null),this.emit(h.c.VIEWS.SHOWN,this)}hide(){this.element.style.visibility=\"hidden\",this.iframe.style.visibility=\"hidden\",this.stopExpanding=!0,this.emit(h.c.VIEWS.HIDDEN,this)}offset(){return{top:this.element.offsetTop,left:this.element.offsetLeft}}width(){return this._width}height(){return this._height}position(){return this.element.getBoundingClientRect()}locationOf(t){this.iframe.getBoundingClientRect();var e=this.contents.locationOf(t,this.settings.ignoreClass);return{left:e.left,top:e.top}}onDisplayed(t){}onResize(t,e){}bounds(t){return!t&&this.elementBounds||(this.elementBounds=Object(r.bounds)(this.element)),this.elementBounds}highlight(t,e={},i,n=\"epubjs-hl\",s={}){if(!this.contents)return;const r=Object.assign({fill:\"yellow\",\"fill-opacity\":\"0.3\",\"mix-blend-mode\":\"multiply\"},s);let o=this.contents.range(t),a=()=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};e.epubcfi=t,this.pane||(this.pane=new l.Pane(this.iframe,this.element));let c=new l.Highlight(o,n,e,r),u=this.pane.addMark(c);return this.highlights[t]={mark:u,element:u.element,listeners:[a,i]},u.element.setAttribute(\"ref\",n),u.element.addEventListener(\"click\",a),u.element.addEventListener(\"touchstart\",a),i&&(u.element.addEventListener(\"click\",i),u.element.addEventListener(\"touchstart\",i)),u}underline(t,e={},i,n=\"epubjs-ul\",s={}){if(!this.contents)return;const r=Object.assign({stroke:\"black\",\"stroke-opacity\":\"0.3\",\"mix-blend-mode\":\"multiply\"},s);let o=this.contents.range(t),a=()=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};e.epubcfi=t,this.pane||(this.pane=new l.Pane(this.iframe,this.element));let c=new l.Underline(o,n,e,r),u=this.pane.addMark(c);return this.underlines[t]={mark:u,element:u.element,listeners:[a,i]},u.element.setAttribute(\"ref\",n),u.element.addEventListener(\"click\",a),u.element.addEventListener(\"touchstart\",a),i&&(u.element.addEventListener(\"click\",i),u.element.addEventListener(\"touchstart\",i)),u}mark(t,e={},i){if(!this.contents)return;if(t in this.marks){return this.marks[t]}let n=this.contents.range(t);if(!n)return;let s=n.commonAncestorContainer,r=1===s.nodeType?s:s.parentNode,o=i=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};n.collapsed&&1===s.nodeType?(n=new Range,n.selectNodeContents(s)):n.collapsed&&(n=new Range,n.selectNodeContents(r));let a=this.document.createElement(\"a\");return a.setAttribute(\"ref\",\"epubjs-mk\"),a.style.position=\"absolute\",a.dataset.epubcfi=t,e&&Object.keys(e).forEach(t=>{a.dataset[t]=e[t]}),i&&(a.addEventListener(\"click\",i),a.addEventListener(\"touchstart\",i)),a.addEventListener(\"click\",o),a.addEventListener(\"touchstart\",o),this.placeMark(a,n),this.element.appendChild(a),this.marks[t]={element:a,range:n,listeners:[o,i]},r}placeMark(t,e){let i,n,s;if(\"pre-paginated\"===this.layout.name||\"horizontal\"!==this.settings.axis){let t=e.getBoundingClientRect();i=t.top,n=t.right}else{let t,o=e.getClientRects();for(var r=0;r!=o.length;r++)t=o[r],(!s||t.left<s)&&(s=t.left,n=Math.ceil(s/this.layout.props.pageWidth)*this.layout.props.pageWidth-this.layout.gap/2,i=t.top)}t.style.top=i+\"px\",t.style.left=n+\"px\"}unhighlight(t){let e;t in this.highlights&&(e=this.highlights[t],this.pane.removeMark(e.mark),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.highlights[t])}ununderline(t){let e;t in this.underlines&&(e=this.underlines[t],this.pane.removeMark(e.mark),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.underlines[t])}unmark(t){let e;t in this.marks&&(e=this.marks[t],this.element.removeChild(e.element),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.marks[t])}destroy(){for(let t in this.highlights)this.unhighlight(t);for(let t in this.underlines)this.ununderline(t);for(let t in this.marks)this.unmark(t);this.blobUrl&&Object(r.revokeBlobUrl)(this.blobUrl),this.displayed&&(this.displayed=!1,this.removeListeners(),this.contents.destroy(),this.stopExpanding=!0,this.element.removeChild(this.iframe),this.pane&&(this.pane.element.remove(),this.pane=void 0),this.iframe=void 0,this.contents=void 0,this._textWidth=null,this._textHeight=null,this._width=null,this._height=null)}}s()(c.prototype),e.a=c},function(t,e,i){var n=i(19),s=i(51),r=i(53),o=Math.max,a=Math.min;t.exports=function(t,e,i){var h,l,c,u,d,f,p=0,g=!1,m=!1,v=!0;if(\"function\"!=typeof t)throw new TypeError(\"Expected a function\");function y(e){var i=h,n=l;return h=l=void 0,p=e,u=t.apply(n,i)}function b(t){return p=t,d=setTimeout(x,e),g?y(t):u}function w(t){var i=t-f;return void 0===f||i>=e||i<0||m&&t-p>=c}function x(){var t=s();if(w(t))return E(t);d=setTimeout(x,function(t){var i=e-(t-f);return m?a(i,c-(t-p)):i}(t))}function E(t){return d=void 0,v&&h?y(t):(h=l=void 0,u)}function S(){var t=s(),i=w(t);if(h=arguments,l=this,f=t,i){if(void 0===d)return b(f);if(m)return clearTimeout(d),d=setTimeout(x,e),y(f)}return void 0===d&&(d=setTimeout(x,e)),u}return e=r(e)||0,n(i)&&(g=!!i.leading,c=(m=\"maxWait\"in i)?o(r(i.maxWait)||0,e):c,v=\"trailing\"in i?!!i.trailing:v),S.cancel=function(){void 0!==d&&clearTimeout(d),p=0,h=f=l=d=void 0},S.flush=function(){return void 0===d?u:E(s())},S}},function(t,e,i){\"use strict\";var n=i(0),s=i(10),r=i(1),o=i(3),a=i.n(o);const h=Math.PI/2,l={easeOutSine:function(t){return Math.sin(t*h)},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},easeInCubic:function(t){return Math.pow(t,3)}};class c{constructor(t,e){this.settings=Object(n.extend)({duration:80,minVelocity:.2,minDistance:10,easing:l.easeInCubic},e||{}),this.supportsTouch=this.supportsTouch(),this.supportsTouch&&this.setup(t)}setup(t){this.manager=t,this.layout=this.manager.layout,this.fullsize=this.manager.settings.fullsize,this.fullsize?(this.element=this.manager.stage.element,this.scroller=window,this.disableScroll()):(this.element=this.manager.stage.container,this.scroller=this.element,this.element.style.WebkitOverflowScrolling=\"touch\"),this.manager.settings.offset=this.layout.width,this.manager.settings.afterScrolledTimeout=2*this.settings.duration,this.isVertical=\"vertical\"===this.manager.settings.axis,this.manager.isPaginated&&!this.isVertical&&(this.touchCanceler=!1,this.resizeCanceler=!1,this.snapping=!1,this.scrollLeft,this.scrollTop,this.startTouchX=void 0,this.startTouchY=void 0,this.startTime=void 0,this.endTouchX=void 0,this.endTouchY=void 0,this.endTime=void 0,this.addListeners())}supportsTouch(){return!!(\"ontouchstart\"in window||window.DocumentTouch&&document instanceof DocumentTouch)}disableScroll(){this.element.style.overflow=\"hidden\"}enableScroll(){this.element.style.overflow=\"\"}addListeners(){this._onResize=this.onResize.bind(this),window.addEventListener(\"resize\",this._onResize),this._onScroll=this.onScroll.bind(this),this.scroller.addEventListener(\"scroll\",this._onScroll),this._onTouchStart=this.onTouchStart.bind(this),this.scroller.addEventListener(\"touchstart\",this._onTouchStart,{passive:!0}),this.on(\"touchstart\",this._onTouchStart),this._onTouchMove=this.onTouchMove.bind(this),this.scroller.addEventListener(\"touchmove\",this._onTouchMove,{passive:!0}),this.on(\"touchmove\",this._onTouchMove),this._onTouchEnd=this.onTouchEnd.bind(this),this.scroller.addEventListener(\"touchend\",this._onTouchEnd,{passive:!0}),this.on(\"touchend\",this._onTouchEnd),this._afterDisplayed=this.afterDisplayed.bind(this),this.manager.on(r.c.MANAGERS.ADDED,this._afterDisplayed)}removeListeners(){window.removeEventListener(\"resize\",this._onResize),this._onResize=void 0,this.scroller.removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0,this.scroller.removeEventListener(\"touchstart\",this._onTouchStart,{passive:!0}),this.off(\"touchstart\",this._onTouchStart),this._onTouchStart=void 0,this.scroller.removeEventListener(\"touchmove\",this._onTouchMove,{passive:!0}),this.off(\"touchmove\",this._onTouchMove),this._onTouchMove=void 0,this.scroller.removeEventListener(\"touchend\",this._onTouchEnd,{passive:!0}),this.off(\"touchend\",this._onTouchEnd),this._onTouchEnd=void 0,this.manager.off(r.c.MANAGERS.ADDED,this._afterDisplayed),this._afterDisplayed=void 0}afterDisplayed(t){let e=t.contents;[\"touchstart\",\"touchmove\",\"touchend\"].forEach(t=>{e.on(t,t=>this.triggerViewEvent(t,e))})}triggerViewEvent(t,e){this.emit(t.type,t,e)}onScroll(t){this.scrollLeft=this.fullsize?window.scrollX:this.scroller.scrollLeft,this.scrollTop=this.fullsize?window.scrollY:this.scroller.scrollTop}onResize(t){this.resizeCanceler=!0}onTouchStart(t){let{screenX:e,screenY:i}=t.touches[0];this.fullsize&&this.enableScroll(),this.touchCanceler=!0,this.startTouchX||(this.startTouchX=e,this.startTouchY=i,this.startTime=this.now()),this.endTouchX=e,this.endTouchY=i,this.endTime=this.now()}onTouchMove(t){let{screenX:e,screenY:i}=t.touches[0],n=Math.abs(i-this.endTouchY);this.touchCanceler=!0,!this.fullsize&&n<10&&(this.element.scrollLeft-=e-this.endTouchX),this.endTouchX=e,this.endTouchY=i,this.endTime=this.now()}onTouchEnd(t){this.fullsize&&this.disableScroll(),this.touchCanceler=!1;let e=this.wasSwiped();0!==e?this.snap(e):this.snap(),this.startTouchX=void 0,this.startTouchY=void 0,this.startTime=void 0,this.endTouchX=void 0,this.endTouchY=void 0,this.endTime=void 0}wasSwiped(){let t=this.layout.pageWidth*this.layout.divisor,e=this.endTouchX-this.startTouchX,i=Math.abs(e),n=e/(this.endTime-this.startTime),s=this.settings.minVelocity;return i<=this.settings.minDistance||i>=t?0:n>s?-1:n<-s?1:void 0}needsSnap(){return this.scrollLeft%(this.layout.pageWidth*this.layout.divisor)!=0}snap(t=0){let e=this.scrollLeft,i=this.layout.pageWidth*this.layout.divisor,n=Math.round(e/i)*i;return t&&(n+=t*i),this.smoothScrollTo(n)}smoothScrollTo(t){const e=new n.defer,i=this.scrollLeft,s=this.now(),r=this.settings.duration,o=this.settings.easing;return this.snapping=!0,function n(){const a=this.now(),h=Math.min(1,(a-s)/r);if(o(h),this.touchCanceler||this.resizeCanceler)return this.resizeCanceler=!1,this.snapping=!1,void e.resolve();h<1?(window.requestAnimationFrame(n.bind(this)),this.scrollTo(i+(t-i)*h,0)):(this.scrollTo(t,0),this.snapping=!1,e.resolve())}.call(this),e.promise}scrollTo(t=0,e=0){this.fullsize?window.scroll(t,e):(this.scroller.scrollLeft=t,this.scroller.scrollTop=e)}now(){return\"now\"in window.performance?performance.now():(new Date).getTime()}destroy(){this.scroller&&(this.fullsize&&this.enableScroll(),this.removeListeners(),this.scroller=void 0)}}a()(c.prototype);var u=c,d=i(21),f=i.n(d);class p extends s.a{constructor(t){super(t),this.name=\"continuous\",this.settings=Object(n.extend)(this.settings||{},{infinite:!0,overflow:void 0,axis:void 0,writingMode:void 0,flow:\"scrolled\",offset:500,offsetDelta:250,width:void 0,height:void 0,snap:!1,afterScrolledTimeout:10,allowScriptedContent:!1,allowPopups:!1}),Object(n.extend)(this.settings,t.settings||{}),\"undefined\"!=t.settings.gap&&0===t.settings.gap&&(this.settings.gap=t.settings.gap),this.viewSettings={ignoreClass:this.settings.ignoreClass,axis:this.settings.axis,flow:this.settings.flow,layout:this.layout,width:0,height:0,forceEvenPages:!1,allowScriptedContent:this.settings.allowScriptedContent,allowPopups:this.settings.allowPopups},this.scrollTop=0,this.scrollLeft=0}display(t,e){return s.a.prototype.display.call(this,t,e).then(function(){return this.fill()}.bind(this))}fill(t){var e=t||new n.defer;return this.q.enqueue(()=>this.check()).then(t=>{t?this.fill(e):e.resolve()}),e.promise}moveTo(t){var e=0,i=0;this.isPaginated?(e=Math.floor(t.left/this.layout.delta)*this.layout.delta,this.settings.offsetDelta):(i=t.top,t.top,this.settings.offsetDelta),(e>0||i>0)&&this.scrollBy(e,i,!0)}afterResized(t){this.emit(r.c.MANAGERS.RESIZE,t.section)}removeShownListeners(t){t.onDisplayed=function(){}}add(t){var e=this.createView(t);return this.views.append(e),e.on(r.c.VIEWS.RESIZED,t=>{e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),e.onDisplayed=this.afterDisplayed.bind(this),e.onResize=this.afterResized.bind(this),e.display(this.request)}append(t){var e=this.createView(t);return e.on(r.c.VIEWS.RESIZED,t=>{e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),this.views.append(e),e.onDisplayed=this.afterDisplayed.bind(this),e}prepend(t){var e=this.createView(t);return e.on(r.c.VIEWS.RESIZED,t=>{this.counter(t),e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),this.views.prepend(e),e.onDisplayed=this.afterDisplayed.bind(this),e}counter(t){\"vertical\"===this.settings.axis?this.scrollBy(0,t.heightDelta,!0):this.scrollBy(t.widthDelta,0,!0)}update(t){for(var e,i=this.bounds(),s=this.views.all(),r=s.length,o=[],a=void 0!==t?t:this.settings.offset||0,h=new n.defer,l=[],c=0;c<r;c++)if(e=s[c],!0===this.isVisible(e,a,a,i)){if(e.displayed)e.show();else{let t=e.display(this.request).then((function(t){t.show()}),t=>{e.hide()});l.push(t)}o.push(e)}else this.q.enqueue(e.destroy.bind(e)),clearTimeout(this.trimTimeout),this.trimTimeout=setTimeout(function(){this.q.enqueue(this.trim.bind(this))}.bind(this),250);return l.length?Promise.all(l).catch(t=>{h.reject(t)}):(h.resolve(),h.promise)}check(t,e){var i=new n.defer,s=[],r=\"horizontal\"===this.settings.axis,o=this.settings.offset||0;t&&r&&(o=t),e&&!r&&(o=e);var a=this._bounds;let h=r?this.scrollLeft:this.scrollTop,l=r?Math.floor(a.width):a.height,c=r?this.container.scrollWidth:this.container.scrollHeight,u=this.writingMode&&0===this.writingMode.indexOf(\"vertical\")?\"vertical\":\"horizontal\",d=this.settings.rtlScrollType,f=\"rtl\"===this.settings.direction;this.settings.fullsize?(r&&f&&\"negative\"===d||!r&&f&&\"default\"===d)&&(h*=-1):(f&&\"default\"===d&&\"horizontal\"===u&&(h=c-l-h),f&&\"negative\"===d&&\"horizontal\"===u&&(h*=-1));let p=()=>{let t=this.views.first(),e=t&&t.section.prev();e&&s.push(this.prepend(e))},g=h-o;h+l+o>=c&&(()=>{let t=this.views.last(),e=t&&t.section.next();e&&s.push(this.append(e))})(),g<0&&p();let m=s.map(t=>t.display(this.request));return s.length?Promise.all(m).then(()=>this.check()).then(()=>this.update(o),t=>t):(this.q.enqueue(function(){this.update()}.bind(this)),i.resolve(!1),i.promise)}trim(){for(var t=new n.defer,e=this.views.displayed(),i=e[0],s=e[e.length-1],r=this.views.indexOf(i),o=this.views.indexOf(s),a=this.views.slice(0,r),h=this.views.slice(o+1),l=0;l<a.length-1;l++)this.erase(a[l],a);for(var c=1;c<h.length;c++)this.erase(h[c]);return t.resolve(),t.promise}erase(t,e){var i,n;this.settings.fullsize?(i=window.scrollY,n=window.scrollX):(i=this.container.scrollTop,n=this.container.scrollLeft);var s=t.bounds();this.views.remove(t),e&&(\"vertical\"===this.settings.axis?this.scrollTo(0,i-s.height,!0):\"rtl\"===this.settings.direction?this.settings.fullsize?this.scrollTo(n+Math.floor(s.width),0,!0):this.scrollTo(n,0,!0):this.scrollTo(n-Math.floor(s.width),0,!0))}addEventListeners(t){window.addEventListener(\"unload\",function(t){this.ignore=!0,this.destroy()}.bind(this)),this.addScrollListeners(),this.isPaginated&&this.settings.snap&&(this.snapper=new u(this,this.settings.snap&&\"object\"==typeof this.settings.snap&&this.settings.snap))}addScrollListeners(){var t;this.tick=n.requestAnimationFrame;let e=\"rtl\"===this.settings.direction&&\"default\"===this.settings.rtlScrollType?-1:1;this.scrollDeltaVert=0,this.scrollDeltaHorz=0,this.settings.fullsize?(t=window,this.scrollTop=window.scrollY*e,this.scrollLeft=window.scrollX*e):(t=this.container,this.scrollTop=this.container.scrollTop,this.scrollLeft=this.container.scrollLeft),this._onScroll=this.onScroll.bind(this),t.addEventListener(\"scroll\",this._onScroll),this._scrolled=f()(this.scrolled.bind(this),30),this.didScroll=!1}removeEventListeners(){(this.settings.fullsize?window:this.container).removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0}onScroll(){let t,e,i=\"rtl\"===this.settings.direction&&\"default\"===this.settings.rtlScrollType?-1:1;this.settings.fullsize?(t=window.scrollY*i,e=window.scrollX*i):(t=this.container.scrollTop,e=this.container.scrollLeft),this.scrollTop=t,this.scrollLeft=e,this.ignore?this.ignore=!1:this._scrolled(),this.scrollDeltaVert+=Math.abs(t-this.prevScrollTop),this.scrollDeltaHorz+=Math.abs(e-this.prevScrollLeft),this.prevScrollTop=t,this.prevScrollLeft=e,clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(function(){this.scrollDeltaVert=0,this.scrollDeltaHorz=0}.bind(this),150),clearTimeout(this.afterScrolled),this.didScroll=!1}scrolled(){this.q.enqueue(function(){return this.check()}.bind(this)),this.emit(r.c.MANAGERS.SCROLL,{top:this.scrollTop,left:this.scrollLeft}),clearTimeout(this.afterScrolled),this.afterScrolled=setTimeout(function(){this.snapper&&this.snapper.supportsTouch&&this.snapper.needsSnap()||this.emit(r.c.MANAGERS.SCROLLED,{top:this.scrollTop,left:this.scrollLeft})}.bind(this),this.settings.afterScrolledTimeout)}next(){let t=\"pre-paginated\"===this.layout.props.name&&this.layout.props.spread?2*this.layout.props.delta:this.layout.props.delta;this.views.length&&(this.isPaginated&&\"horizontal\"===this.settings.axis?this.scrollBy(t,0,!0):this.scrollBy(0,this.layout.height,!0),this.q.enqueue(function(){return this.check()}.bind(this)))}prev(){let t=\"pre-paginated\"===this.layout.props.name&&this.layout.props.spread?2*this.layout.props.delta:this.layout.props.delta;this.views.length&&(this.isPaginated&&\"horizontal\"===this.settings.axis?this.scrollBy(-t,0,!0):this.scrollBy(0,-this.layout.height,!0),this.q.enqueue(function(){return this.check()}.bind(this)))}updateFlow(t){this.rendered&&this.snapper&&(this.snapper.destroy(),this.snapper=void 0),super.updateFlow(t,\"scroll\"),this.rendered&&this.isPaginated&&this.settings.snap&&(this.snapper=new u(this,this.settings.snap&&\"object\"==typeof this.settings.snap&&this.settings.snap))}destroy(){super.destroy(),this.snapper&&this.snapper.destroy()}}e.a=p},function(t,e,i){(function(e){t.exports=function t(e,i,n){function s(o,a){if(!i[o]){if(!e[o]){if(r)return r(o,!0);var h=new Error(\"Cannot find module '\"+o+\"'\");throw h.code=\"MODULE_NOT_FOUND\",h}var l=i[o]={exports:{}};e[o][0].call(l.exports,(function(t){var i=e[o][1][t];return s(i||t)}),l,l.exports,t,e,i,n)}return i[o].exports}for(var r=!1,o=0;o<n.length;o++)s(n[o]);return s}({1:[function(t,i,n){(function(t){\"use strict\";var e,n,s=t.MutationObserver||t.WebKitMutationObserver;if(s){var r=0,o=new s(c),a=t.document.createTextNode(\"\");o.observe(a,{characterData:!0}),e=function(){a.data=r=++r%2}}else if(t.setImmediate||void 0===t.MessageChannel)e=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){c(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(c,0)};else{var h=new t.MessageChannel;h.port1.onmessage=c,e=function(){h.port2.postMessage(0)}}var l=[];function c(){var t,e;n=!0;for(var i=l.length;i;){for(e=l,l=[],t=-1;++t<i;)e[t]();i=l.length}n=!1}i.exports=function(t){1!==l.push(t)||n||e()}}).call(this,void 0!==e?e:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],2:[function(t,e,i){\"use strict\";var n=t(1);function s(){}var r={},o=[\"REJECTED\"],a=[\"FULFILLED\"],h=[\"PENDING\"];function l(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=h,this.queue=[],this.outcome=void 0,t!==s&&f(this,t)}function c(t,e,i){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof i&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}function u(t,e,i){n((function(){var n;try{n=e(i)}catch(e){return r.reject(t,e)}n===t?r.reject(t,new TypeError(\"Cannot resolve promise with itself\")):r.resolve(t,n)}))}function d(t){var e=t&&t.then;if(t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function f(t,e){var i=!1;function n(e){i||(i=!0,r.reject(t,e))}function s(e){i||(i=!0,r.resolve(t,e))}var o=p((function(){e(s,n)}));\"error\"===o.status&&n(o.value)}function p(t,e){var i={};try{i.value=t(e),i.status=\"success\"}catch(t){i.status=\"error\",i.value=t}return i}e.exports=l,l.prototype.catch=function(t){return this.then(null,t)},l.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===a||\"function\"!=typeof e&&this.state===o)return this;var i=new this.constructor(s);return this.state!==h?u(i,this.state===a?t:e,this.outcome):this.queue.push(new c(i,t,e)),i},c.prototype.callFulfilled=function(t){r.resolve(this.promise,t)},c.prototype.otherCallFulfilled=function(t){u(this.promise,this.onFulfilled,t)},c.prototype.callRejected=function(t){r.reject(this.promise,t)},c.prototype.otherCallRejected=function(t){u(this.promise,this.onRejected,t)},r.resolve=function(t,e){var i=p(d,e);if(\"error\"===i.status)return r.reject(t,i.value);var n=i.value;if(n)f(t,n);else{t.state=a,t.outcome=e;for(var s=-1,o=t.queue.length;++s<o;)t.queue[s].callFulfilled(e)}return t},r.reject=function(t,e){t.state=o,t.outcome=e;for(var i=-1,n=t.queue.length;++i<n;)t.queue[i].callRejected(e);return t},l.resolve=function(t){return t instanceof this?t:r.resolve(new this(s),t)},l.reject=function(t){var e=new this(s);return r.reject(e,t)},l.all=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);for(var o=new Array(i),a=0,h=-1,l=new this(s);++h<i;)c(t[h],h);return l;function c(t,s){e.resolve(t).then((function(t){o[s]=t,++a!==i||n||(n=!0,r.resolve(l,o))}),(function(t){n||(n=!0,r.reject(l,t))}))}},l.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);for(var o,a=-1,h=new this(s);++a<i;)o=t[a],e.resolve(o).then((function(t){n||(n=!0,r.resolve(h,t))}),(function(t){n||(n=!0,r.reject(h,t))}));return h}},{1:1}],3:[function(t,i,n){(function(e){\"use strict\";\"function\"!=typeof e.Promise&&(e.Promise=t(2))}).call(this,void 0!==e?e:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{2:2}],4:[function(t,e,i){\"use strict\";var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},s=function(){try{if(\"undefined\"!=typeof indexedDB)return indexedDB;if(\"undefined\"!=typeof webkitIndexedDB)return webkitIndexedDB;if(\"undefined\"!=typeof mozIndexedDB)return mozIndexedDB;if(\"undefined\"!=typeof OIndexedDB)return OIndexedDB;if(\"undefined\"!=typeof msIndexedDB)return msIndexedDB}catch(t){return}}();function r(t,e){t=t||[],e=e||{};try{return new Blob(t,e)}catch(s){if(\"TypeError\"!==s.name)throw s;for(var i=new(\"undefined\"!=typeof BlobBuilder?BlobBuilder:\"undefined\"!=typeof MSBlobBuilder?MSBlobBuilder:\"undefined\"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<t.length;n+=1)i.append(t[n]);return i.getBlob(e.type)}}\"undefined\"==typeof Promise&&t(3);var o=Promise;function a(t,e){e&&t.then((function(t){e(null,t)}),(function(t){e(t)}))}function h(t,e,i){\"function\"==typeof e&&t.then(e),\"function\"==typeof i&&t.catch(i)}function l(t){return\"string\"!=typeof t&&(console.warn(t+\" used as a key, but it is not a string.\"),t=String(t)),t}function c(){if(arguments.length&&\"function\"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var u=void 0,d={},f=Object.prototype.toString;function p(t){return\"boolean\"==typeof u?o.resolve(u):function(t){return new o((function(e){var i=t.transaction(\"local-forage-detect-blob-support\",\"readwrite\"),n=r([\"\"]);i.objectStore(\"local-forage-detect-blob-support\").put(n,\"key\"),i.onabort=function(t){t.preventDefault(),t.stopPropagation(),e(!1)},i.oncomplete=function(){var t=navigator.userAgent.match(/Chrome\\/(\\d+)/),i=navigator.userAgent.match(/Edge\\//);e(i||!t||parseInt(t[1],10)>=43)}})).catch((function(){return!1}))}(t).then((function(t){return u=t}))}function g(t){var e=d[t.name],i={};i.promise=new o((function(t,e){i.resolve=t,i.reject=e})),e.deferredOperations.push(i),e.dbReady?e.dbReady=e.dbReady.then((function(){return i.promise})):e.dbReady=i.promise}function m(t){var e=d[t.name].deferredOperations.pop();if(e)return e.resolve(),e.promise}function v(t,e){var i=d[t.name].deferredOperations.pop();if(i)return i.reject(e),i.promise}function y(t,e){return new o((function(i,n){if(d[t.name]=d[t.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},t.db){if(!e)return i(t.db);g(t),t.db.close()}var r=[t.name];e&&r.push(t.version);var o=s.open.apply(s,r);e&&(o.onupgradeneeded=function(e){var i=o.result;try{i.createObjectStore(t.storeName),e.oldVersion<=1&&i.createObjectStore(\"local-forage-detect-blob-support\")}catch(i){if(\"ConstraintError\"!==i.name)throw i;console.warn('The database \"'+t.name+'\" has been upgraded from version '+e.oldVersion+\" to version \"+e.newVersion+', but the storage \"'+t.storeName+'\" already exists.')}}),o.onerror=function(t){t.preventDefault(),n(o.error)},o.onsuccess=function(){var e=o.result;e.onversionchange=function(t){t.target.close()},i(e),m(t)}}))}function b(t){return y(t,!1)}function w(t){return y(t,!0)}function x(t,e){if(!t.db)return!0;var i=!t.db.objectStoreNames.contains(t.storeName),n=t.version<t.db.version,s=t.version>t.db.version;if(n&&(t.version!==e&&console.warn('The database \"'+t.name+\"\\\" can't be downgraded from version \"+t.db.version+\" to version \"+t.version+\".\"),t.version=t.db.version),s||i){if(i){var r=t.db.version+1;r>t.version&&(t.version=r)}return!0}return!1}function E(t){return r([function(t){for(var e=t.length,i=new ArrayBuffer(e),n=new Uint8Array(i),s=0;s<e;s++)n[s]=t.charCodeAt(s);return i}(atob(t.data))],{type:t.type})}function S(t){return t&&t.__local_forage_encoded_blob}function N(t){var e=this,i=e._initReady().then((function(){var t=d[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady}));return h(i,t,t),i}function _(t,e,i,n){void 0===n&&(n=1);try{var s=t.db.transaction(t.storeName,e);i(null,s)}catch(s){if(n>0&&(!t.db||\"InvalidStateError\"===s.name||\"NotFoundError\"===s.name))return o.resolve().then((function(){if(!t.db||\"NotFoundError\"===s.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),w(t)})).then((function(){return function(t){g(t);for(var e=d[t.name],i=e.forages,n=0;n<i.length;n++){var s=i[n];s._dbInfo.db&&(s._dbInfo.db.close(),s._dbInfo.db=null)}return t.db=null,b(t).then((function(e){return t.db=e,x(t)?w(t):e})).then((function(n){t.db=e.db=n;for(var s=0;s<i.length;s++)i[s]._dbInfo.db=n})).catch((function(e){throw v(t,e),e}))}(t).then((function(){_(t,e,i,n-1)}))})).catch(i);i(s)}}var T={_driver:\"asyncStorage\",_initStorage:function(t){var e=this,i={db:null};if(t)for(var n in t)i[n]=t[n];var s=d[i.name];s||(s={forages:[],db:null,dbReady:null,deferredOperations:[]},d[i.name]=s),s.forages.push(e),e._initReady||(e._initReady=e.ready,e.ready=N);var r=[];function a(){return o.resolve()}for(var h=0;h<s.forages.length;h++){var l=s.forages[h];l!==e&&r.push(l._initReady().catch(a))}var c=s.forages.slice(0);return o.all(r).then((function(){return i.db=s.db,b(i)})).then((function(t){return i.db=t,x(i,e._defaultConfig.version)?w(i):t})).then((function(t){i.db=s.db=t,e._dbInfo=i;for(var n=0;n<c.length;n++){var r=c[n];r!==e&&(r._dbInfo.db=i.db,r._dbInfo.version=i.version)}}))},_support:function(){try{if(!s||!s.open)return!1;var t=\"undefined\"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),e=\"function\"==typeof fetch&&-1!==fetch.toString().indexOf(\"[native code\");return(!t||e)&&\"undefined\"!=typeof indexedDB&&\"undefined\"!=typeof IDBKeyRange}catch(t){return!1}}(),iterate:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).openCursor(),a=1;o.onsuccess=function(){var i=o.result;if(i){var n=i.value;S(n)&&(n=E(n));var s=t(n,i.key,a++);void 0!==s?e(s):i.continue()}else e()},o.onerror=function(){n(o.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).get(t);o.onsuccess=function(){var t=o.result;void 0===t&&(t=null),S(t)&&(t=E(t)),e(t)},o.onerror=function(){n(o.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},setItem:function(t,e,i){var n=this;t=l(t);var s=new o((function(i,s){var r;n.ready().then((function(){return r=n._dbInfo,\"[object Blob]\"===f.call(e)?p(r.db).then((function(t){return t?e:(i=e,new o((function(t,e){var n=new FileReader;n.onerror=e,n.onloadend=function(e){var n=btoa(e.target.result||\"\");t({__local_forage_encoded_blob:!0,data:n,type:i.type})},n.readAsBinaryString(i)})));var i})):e})).then((function(e){_(n._dbInfo,\"readwrite\",(function(r,o){if(r)return s(r);try{var a=o.objectStore(n._dbInfo.storeName);null===e&&(e=void 0);var h=a.put(e,t);o.oncomplete=function(){void 0===e&&(e=null),i(e)},o.onabort=o.onerror=function(){var t=h.error?h.error:h.transaction.error;s(t)}}catch(t){s(t)}}))})).catch(s)}));return a(s,i),s},removeItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readwrite\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).delete(t);r.oncomplete=function(){e()},r.onerror=function(){n(o.error)},r.onabort=function(){var t=o.error?o.error:o.transaction.error;n(t)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},clear:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readwrite\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).clear();s.oncomplete=function(){t()},s.onabort=s.onerror=function(){var t=r.error?r.error:r.transaction.error;i(t)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},length:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readonly\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).count();r.onsuccess=function(){t(r.result)},r.onerror=function(){i(r.error)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},key:function(t,e){var i=this,n=new o((function(e,n){t<0?e(null):i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName),a=!1,h=o.openKeyCursor();h.onsuccess=function(){var i=h.result;i?0===t||a?e(i.key):(a=!0,i.advance(t)):e(null)},h.onerror=function(){n(h.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},keys:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readonly\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).openKeyCursor(),o=[];r.onsuccess=function(){var e=r.result;e?(o.push(e.key),e.continue()):t(o)},r.onerror=function(){i(r.error)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},dropInstance:function(t,e){e=c.apply(this,arguments);var i=this.config();(t=\"function\"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName);var n,r=this;if(t.name){var h=t.name===i.name&&r._dbInfo.db,l=h?o.resolve(r._dbInfo.db):b(t).then((function(e){var i=d[t.name],n=i.forages;i.db=e;for(var s=0;s<n.length;s++)n[s]._dbInfo.db=e;return e}));n=t.storeName?l.then((function(e){if(e.objectStoreNames.contains(t.storeName)){var i=e.version+1;g(t);var n=d[t.name],r=n.forages;e.close();for(var a=0;a<r.length;a++){var h=r[a];h._dbInfo.db=null,h._dbInfo.version=i}return new o((function(e,n){var r=s.open(t.name,i);r.onerror=function(t){r.result.close(),n(t)},r.onupgradeneeded=function(){r.result.deleteObjectStore(t.storeName)},r.onsuccess=function(){var t=r.result;t.close(),e(t)}})).then((function(t){n.db=t;for(var e=0;e<r.length;e++){var i=r[e];i._dbInfo.db=t,m(i._dbInfo)}})).catch((function(e){throw(v(t,e)||o.resolve()).catch((function(){})),e}))}})):l.then((function(e){g(t);var i=d[t.name],n=i.forages;e.close();for(var r=0;r<n.length;r++)n[r]._dbInfo.db=null;return new o((function(e,i){var n=s.deleteDatabase(t.name);n.onerror=function(){var t=n.result;t&&t.close(),i(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database \"'+t.name+'\" until all open connections are closed')},n.onsuccess=function(){var t=n.result;t&&t.close(),e(t)}})).then((function(t){i.db=t;for(var e=0;e<n.length;e++)m(n[e]._dbInfo)})).catch((function(e){throw(v(t,e)||o.resolve()).catch((function(){})),e}))}))}else n=o.reject(\"Invalid arguments\");return a(n,e),n}},C=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",O=/^~~local_forage_type~([^~]+)~/,I=\"__lfsc__:\".length,R=I+\"arbf\".length,k=Object.prototype.toString;function A(t){var e,i,n,s,r,o=.75*t.length,a=t.length,h=0;\"=\"===t[t.length-1]&&(o--,\"=\"===t[t.length-2]&&o--);var l=new ArrayBuffer(o),c=new Uint8Array(l);for(e=0;e<a;e+=4)i=C.indexOf(t[e]),n=C.indexOf(t[e+1]),s=C.indexOf(t[e+2]),r=C.indexOf(t[e+3]),c[h++]=i<<2|n>>4,c[h++]=(15&n)<<4|s>>2,c[h++]=(3&s)<<6|63&r;return l}function L(t){var e,i=new Uint8Array(t),n=\"\";for(e=0;e<i.length;e+=3)n+=C[i[e]>>2],n+=C[(3&i[e])<<4|i[e+1]>>4],n+=C[(15&i[e+1])<<2|i[e+2]>>6],n+=C[63&i[e+2]];return i.length%3==2?n=n.substring(0,n.length-1)+\"=\":i.length%3==1&&(n=n.substring(0,n.length-2)+\"==\"),n}var j={serialize:function(t,e){var i=\"\";if(t&&(i=k.call(t)),t&&(\"[object ArrayBuffer]\"===i||t.buffer&&\"[object ArrayBuffer]\"===k.call(t.buffer))){var n,s=\"__lfsc__:\";t instanceof ArrayBuffer?(n=t,s+=\"arbf\"):(n=t.buffer,\"[object Int8Array]\"===i?s+=\"si08\":\"[object Uint8Array]\"===i?s+=\"ui08\":\"[object Uint8ClampedArray]\"===i?s+=\"uic8\":\"[object Int16Array]\"===i?s+=\"si16\":\"[object Uint16Array]\"===i?s+=\"ur16\":\"[object Int32Array]\"===i?s+=\"si32\":\"[object Uint32Array]\"===i?s+=\"ui32\":\"[object Float32Array]\"===i?s+=\"fl32\":\"[object Float64Array]\"===i?s+=\"fl64\":e(new Error(\"Failed to get type for BinaryArray\"))),e(s+L(n))}else if(\"[object Blob]\"===i){var r=new FileReader;r.onload=function(){var i=\"~~local_forage_type~\"+t.type+\"~\"+L(this.result);e(\"__lfsc__:blob\"+i)},r.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(i){console.error(\"Couldn't convert value into a JSON string: \",t),e(null,i)}},deserialize:function(t){if(\"__lfsc__:\"!==t.substring(0,I))return JSON.parse(t);var e,i=t.substring(R),n=t.substring(I,R);if(\"blob\"===n&&O.test(i)){var s=i.match(O);e=s[1],i=i.substring(s[0].length)}var o=A(i);switch(n){case\"arbf\":return o;case\"blob\":return r([o],{type:e});case\"si08\":return new Int8Array(o);case\"ui08\":return new Uint8Array(o);case\"uic8\":return new Uint8ClampedArray(o);case\"si16\":return new Int16Array(o);case\"ur16\":return new Uint16Array(o);case\"si32\":return new Int32Array(o);case\"ui32\":return new Uint32Array(o);case\"fl32\":return new Float32Array(o);case\"fl64\":return new Float64Array(o);default:throw new Error(\"Unkown type: \"+n)}},stringToBuffer:A,bufferToString:L};function D(t,e,i,n){t.executeSql(\"CREATE TABLE IF NOT EXISTS \"+e.storeName+\" (id INTEGER PRIMARY KEY, key unique, value)\",[],i,n)}function P(t,e,i,n,s,r){t.executeSql(i,n,s,(function(t,o){o.code===o.SYNTAX_ERR?t.executeSql(\"SELECT name FROM sqlite_master WHERE type='table' AND name = ?\",[e.storeName],(function(t,a){a.rows.length?r(t,o):D(t,e,(function(){t.executeSql(i,n,s,r)}),r)}),r):r(t,o)}),r)}function M(t,e,i,n){var s=this;t=l(t);var r=new o((function(r,o){s.ready().then((function(){void 0===e&&(e=null);var a=e,h=s._dbInfo;h.serializer.serialize(e,(function(e,l){l?o(l):h.db.transaction((function(i){P(i,h,\"INSERT OR REPLACE INTO \"+h.storeName+\" (key, value) VALUES (?, ?)\",[t,e],(function(){r(a)}),(function(t,e){o(e)}))}),(function(e){if(e.code===e.QUOTA_ERR){if(n>0)return void r(M.apply(s,[t,a,i,n-1]));o(e)}}))}))})).catch(o)}));return a(r,i),r}function z(t){return new o((function(e,i){t.transaction((function(n){n.executeSql(\"SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\",[],(function(i,n){for(var s=[],r=0;r<n.rows.length;r++)s.push(n.rows.item(r).name);e({db:t,storeNames:s})}),(function(t,e){i(e)}))}),(function(t){i(t)}))}))}var B={_driver:\"webSQLStorage\",_initStorage:function(t){var e=this,i={db:null};if(t)for(var n in t)i[n]=\"string\"!=typeof t[n]?t[n].toString():t[n];var s=new o((function(t,n){try{i.db=openDatabase(i.name,String(i.version),i.description,i.size)}catch(t){return n(t)}i.db.transaction((function(s){D(s,i,(function(){e._dbInfo=i,t()}),(function(t,e){n(e)}))}),n)}));return i.serializer=j,s},_support:\"function\"==typeof openDatabase,iterate:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT * FROM \"+s.storeName,[],(function(i,n){for(var r=n.rows,o=r.length,a=0;a<o;a++){var h=r.item(a),l=h.value;if(l&&(l=s.serializer.deserialize(l)),void 0!==(l=t(l,h.key,a+1)))return void e(l)}e()}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT * FROM \"+s.storeName+\" WHERE key = ? LIMIT 1\",[t],(function(t,i){var n=i.rows.length?i.rows.item(0).value:null;n&&(n=s.serializer.deserialize(n)),e(n)}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},setItem:function(t,e,i){return M.apply(this,[t,e,i,1])},removeItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"DELETE FROM \"+s.storeName+\" WHERE key = ?\",[t],(function(){e()}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},clear:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"DELETE FROM \"+n.storeName,[],(function(){t()}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},length:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"SELECT COUNT(key) as c FROM \"+n.storeName,[],(function(e,i){var n=i.rows.item(0).c;t(n)}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},key:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT key FROM \"+s.storeName+\" WHERE id = ? LIMIT 1\",[t+1],(function(t,i){var n=i.rows.length?i.rows.item(0).key:null;e(n)}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},keys:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"SELECT key FROM \"+n.storeName,[],(function(e,i){for(var n=[],s=0;s<i.rows.length;s++)n.push(i.rows.item(s).key);t(n)}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},dropInstance:function(t,e){e=c.apply(this,arguments);var i=this.config();(t=\"function\"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName);var n,s=this;return a(n=t.name?new o((function(e){var n;n=t.name===i.name?s._dbInfo.db:openDatabase(t.name,\"\",\"\",0),t.storeName?e({db:n,storeNames:[t.storeName]}):e(z(n))})).then((function(t){return new o((function(e,i){t.db.transaction((function(n){function s(t){return new o((function(e,i){n.executeSql(\"DROP TABLE IF EXISTS \"+t,[],(function(){e()}),(function(t,e){i(e)}))}))}for(var r=[],a=0,h=t.storeNames.length;a<h;a++)r.push(s(t.storeNames[a]));o.all(r).then((function(){e()})).catch((function(t){i(t)}))}),(function(t){i(t)}))}))})):o.reject(\"Invalid arguments\"),e),n}};function q(t,e){var i=t.name+\"/\";return t.storeName!==e.storeName&&(i+=t.storeName+\"/\"),i}function F(){return!function(){try{return localStorage.setItem(\"_localforage_support_test\",!0),localStorage.removeItem(\"_localforage_support_test\"),!1}catch(t){return!0}}()||localStorage.length>0}var U={_driver:\"localStorageWrapper\",_initStorage:function(t){var e={};if(t)for(var i in t)e[i]=t[i];return e.keyPrefix=q(t,this._defaultConfig),F()?(this._dbInfo=e,e.serializer=j,o.resolve()):o.reject()},_support:function(){try{return\"undefined\"!=typeof localStorage&&\"setItem\"in localStorage&&!!localStorage.setItem}catch(t){return!1}}(),iterate:function(t,e){var i=this,n=i.ready().then((function(){for(var e=i._dbInfo,n=e.keyPrefix,s=n.length,r=localStorage.length,o=1,a=0;a<r;a++){var h=localStorage.key(a);if(0===h.indexOf(n)){var l=localStorage.getItem(h);if(l&&(l=e.serializer.deserialize(l)),void 0!==(l=t(l,h.substring(s),o++)))return l}}}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=i.ready().then((function(){var e=i._dbInfo,n=localStorage.getItem(e.keyPrefix+t);return n&&(n=e.serializer.deserialize(n)),n}));return a(n,e),n},setItem:function(t,e,i){var n=this;t=l(t);var s=n.ready().then((function(){void 0===e&&(e=null);var i=e;return new o((function(s,r){var o=n._dbInfo;o.serializer.serialize(e,(function(e,n){if(n)r(n);else try{localStorage.setItem(o.keyPrefix+t,e),s(i)}catch(t){\"QuotaExceededError\"!==t.name&&\"NS_ERROR_DOM_QUOTA_REACHED\"!==t.name||r(t),r(t)}}))}))}));return a(s,i),s},removeItem:function(t,e){var i=this;t=l(t);var n=i.ready().then((function(){var e=i._dbInfo;localStorage.removeItem(e.keyPrefix+t)}));return a(n,e),n},clear:function(t){var e=this,i=e.ready().then((function(){for(var t=e._dbInfo.keyPrefix,i=localStorage.length-1;i>=0;i--){var n=localStorage.key(i);0===n.indexOf(t)&&localStorage.removeItem(n)}}));return a(i,t),i},length:function(t){var e=this.keys().then((function(t){return t.length}));return a(e,t),e},key:function(t,e){var i=this,n=i.ready().then((function(){var e,n=i._dbInfo;try{e=localStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(n.keyPrefix.length)),e}));return a(n,e),n},keys:function(t){var e=this,i=e.ready().then((function(){for(var t=e._dbInfo,i=localStorage.length,n=[],s=0;s<i;s++){var r=localStorage.key(s);0===r.indexOf(t.keyPrefix)&&n.push(r.substring(t.keyPrefix.length))}return n}));return a(i,t),i},dropInstance:function(t,e){if(e=c.apply(this,arguments),!(t=\"function\"!=typeof t&&t||{}).name){var i=this.config();t.name=t.name||i.name,t.storeName=t.storeName||i.storeName}var n,s=this;return a(n=t.name?new o((function(e){t.storeName?e(q(t,s._defaultConfig)):e(t.name+\"/\")})).then((function(t){for(var e=localStorage.length-1;e>=0;e--){var i=localStorage.key(e);0===i.indexOf(t)&&localStorage.removeItem(i)}})):o.reject(\"Invalid arguments\"),e),n}},W=function(t,e){for(var i,n,s=t.length,r=0;r<s;){if((i=t[r])===(n=e)||\"number\"==typeof i&&\"number\"==typeof n&&isNaN(i)&&isNaN(n))return!0;r++}return!1},H=Array.isArray||function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},V={},X={},G={INDEXEDDB:T,WEBSQL:B,LOCALSTORAGE:U},Y=[G.INDEXEDDB._driver,G.WEBSQL._driver,G.LOCALSTORAGE._driver],$=[\"dropInstance\"],K=[\"clear\",\"getItem\",\"iterate\",\"key\",\"keys\",\"length\",\"removeItem\",\"setItem\"].concat($),Z={description:\"\",driver:Y.slice(),name:\"localforage\",size:4980736,storeName:\"keyvaluepairs\",version:1};function J(t,e){t[e]=function(){var i=arguments;return t.ready().then((function(){return t[e].apply(t,i)}))}}function Q(){for(var t=1;t<arguments.length;t++){var e=arguments[t];if(e)for(var i in e)e.hasOwnProperty(i)&&(H(e[i])?arguments[0][i]=e[i].slice():arguments[0][i]=e[i])}return arguments[0]}var tt=new(function(){function t(e){for(var i in function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),G)if(G.hasOwnProperty(i)){var n=G[i],s=n._driver;this[i]=s,V[s]||this.defineDriver(n)}this._defaultConfig=Q({},Z),this._config=Q({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return t.prototype.config=function(t){if(\"object\"===(void 0===t?\"undefined\":n(t))){if(this._ready)return new Error(\"Can't call config() after localforage has been used.\");for(var e in t){if(\"storeName\"===e&&(t[e]=t[e].replace(/\\W/g,\"_\")),\"version\"===e&&\"number\"!=typeof t[e])return new Error(\"Database version must be a number.\");this._config[e]=t[e]}return!(\"driver\"in t)||!t.driver||this.setDriver(this._config.driver)}return\"string\"==typeof t?this._config[t]:this._config},t.prototype.defineDriver=function(t,e,i){var n=new o((function(e,i){try{var n=t._driver,s=new Error(\"Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver\");if(!t._driver)return void i(s);for(var r=K.concat(\"_initStorage\"),h=0,l=r.length;h<l;h++){var c=r[h];if((!W($,c)||t[c])&&\"function\"!=typeof t[c])return void i(s)}!function(){for(var e=function(t){return function(){var e=new Error(\"Method \"+t+\" is not implemented by the current driver\"),i=o.reject(e);return a(i,arguments[arguments.length-1]),i}},i=0,n=$.length;i<n;i++){var s=$[i];t[s]||(t[s]=e(s))}}();var u=function(i){V[n]&&console.info(\"Redefining LocalForage driver: \"+n),V[n]=t,X[n]=i,e()};\"_support\"in t?t._support&&\"function\"==typeof t._support?t._support().then(u,i):u(!!t._support):u(!0)}catch(t){i(t)}}));return h(n,e,i),n},t.prototype.driver=function(){return this._driver||null},t.prototype.getDriver=function(t,e,i){var n=V[t]?o.resolve(V[t]):o.reject(new Error(\"Driver not found.\"));return h(n,e,i),n},t.prototype.getSerializer=function(t){var e=o.resolve(j);return h(e,t),e},t.prototype.ready=function(t){var e=this,i=e._driverSet.then((function(){return null===e._ready&&(e._ready=e._initDriver()),e._ready}));return h(i,t,t),i},t.prototype.setDriver=function(t,e,i){var n=this;H(t)||(t=[t]);var s=this._getSupportedDrivers(t);function r(){n._config.driver=n.driver()}function a(t){return n._extend(t),r(),n._ready=n._initStorage(n._config),n._ready}var l=null!==this._driverSet?this._driverSet.catch((function(){return o.resolve()})):o.resolve();return this._driverSet=l.then((function(){var t=s[0];return n._dbInfo=null,n._ready=null,n.getDriver(t).then((function(t){n._driver=t._driver,r(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(t){return function(){var e=0;return function i(){for(;e<t.length;){var s=t[e];return e++,n._dbInfo=null,n._ready=null,n.getDriver(s).then(a).catch(i)}r();var h=new Error(\"No available storage method found.\");return n._driverSet=o.reject(h),n._driverSet}()}}(s)}))})).catch((function(){r();var t=new Error(\"No available storage method found.\");return n._driverSet=o.reject(t),n._driverSet})),h(this._driverSet,e,i),this._driverSet},t.prototype.supports=function(t){return!!X[t]},t.prototype._extend=function(t){Q(this,t)},t.prototype._getSupportedDrivers=function(t){for(var e=[],i=0,n=t.length;i<n;i++){var s=t[i];this.supports(s)&&e.push(s)}return e},t.prototype._wrapLibraryMethodsWithReady=function(){for(var t=0,e=K.length;t<e;t++)J(this,K[t])},t.prototype.createInstance=function(e){return new t(e)},t}());e.exports=tt},{3:3}]},{},[4])(4)}).call(this,i(17))},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(5),a=i(4),h=i(2),l=i(6),c=i(8);var u=function(t,e,i,n){var s,o=\"undefined\"!=typeof window&&window.URL,h=o?\"blob\":\"arraybuffer\",l=new r.defer,c=new XMLHttpRequest,u=XMLHttpRequest.prototype;for(s in\"overrideMimeType\"in u||Object.defineProperty(u,\"overrideMimeType\",{value:function(){}}),i&&(c.withCredentials=!0),c.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE){var t=!1;if(\"\"!==this.responseType&&\"document\"!==this.responseType||(t=this.responseXML),200===this.status||0===this.status||t){var i;if(!this.response&&!t)return l.reject({status:this.status,message:\"Empty Response\",stack:(new Error).stack}),l.promise;if(403===this.status)return l.reject({status:this.status,response:this.response,message:\"Forbidden\",stack:(new Error).stack}),l.promise;i=t?this.responseXML:Object(r.isXml)(e)?Object(r.parse)(this.response,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(this.response,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(this.response,\"text/html\"):\"json\"==e?JSON.parse(this.response):\"blob\"==e?o?this.response:new Blob([this.response]):this.response,l.resolve(i)}else l.reject({status:this.status,message:this.response,stack:(new Error).stack})}},c.onerror=function(t){l.reject(t)},c.open(\"GET\",t,!0),n)c.setRequestHeader(s,n[s]);return\"json\"==e&&c.setRequestHeader(\"Accept\",\"application/json\"),e||(e=new a.a(t).extension),\"blob\"==e&&(c.responseType=h),Object(r.isXml)(e)&&c.overrideMimeType(\"text/xml\"),\"binary\"==e&&(c.responseType=\"arraybuffer\"),c.send(),l.promise},d=i(15);var f=class{constructor(t,e){this.idref=t.idref,this.linear=\"yes\"===t.linear,this.properties=t.properties,this.index=t.index,this.href=t.href,this.url=t.url,this.canonical=t.canonical,this.next=t.next,this.prev=t.prev,this.cfiBase=t.cfiBase,e?this.hooks=e:(this.hooks={},this.hooks.serialize=new l.a(this),this.hooks.content=new l.a(this)),this.document=void 0,this.contents=void 0,this.output=void 0}load(t){var e=t||this.request||u,i=new r.defer,n=i.promise;return this.contents?i.resolve(this.contents):e(this.url).then(function(t){return this.document=t,this.contents=t.documentElement,this.hooks.content.trigger(this.document,this)}.bind(this)).then(function(){i.resolve(this.contents)}.bind(this)).catch((function(t){i.reject(t)})),n}base(){return Object(c.a)(this.document,this)}render(t){var e=new r.defer,i=e.promise;return this.output,this.load(t).then(function(t){var e=(\"undefined\"!=typeof navigator&&navigator.userAgent||\"\").indexOf(\"Trident\")>=0,i=new(\"undefined\"==typeof XMLSerializer||e?d.DOMParser:XMLSerializer);return this.output=i.serializeToString(t),this.output}.bind(this)).then(function(){return this.hooks.serialize.trigger(this.output,this)}.bind(this)).then(function(){e.resolve(this.output)}.bind(this)).catch((function(t){e.reject(t)})),i}find(t){var e=this,i=[],n=t.toLowerCase();return Object(r.sprint)(e.document,(function(t){!function(t){for(var s,r,o,a=t.textContent.toLowerCase(),h=e.document.createRange(),l=-1;-1!=r;)-1!=(r=a.indexOf(n,l+1))&&((h=e.document.createRange()).setStart(t,r),h.setEnd(t,r+n.length),s=e.cfiFromRange(h),o=t.textContent.length<150?t.textContent:\"...\"+(o=t.textContent.substring(r-75,r+75))+\"...\",i.push({cfi:s,excerpt:o})),l=r}(t)})),i}search(t,e=5){if(void 0===document.createTreeWalker)return this.find(t);let i=[];const n=this,s=t.toLowerCase(),r=function(t){const e=t.reduce((t,e)=>t+e.textContent,\"\").toLowerCase().indexOf(s);if(-1!=e){const r=0,o=e+s.length;let a=0,h=0;if(e<t[r].length){let s;for(;a<t.length-1&&(h+=t[a].length,!(o<=h));)a+=1;let l=t[r],c=t[a],u=n.document.createRange();u.setStart(l,e);let d=t.slice(0,a).reduce((t,e)=>t+e.textContent.length,0);u.setEnd(c,d>o?o:o-d),s=n.cfiFromRange(u);let f=t.slice(0,a+1).reduce((t,e)=>t+e.textContent,\"\");f.length>150&&(f=f.substring(e-75,e+75),f=\"...\"+f+\"...\"),i.push({cfi:s,excerpt:f})}}},o=document.createTreeWalker(n.document,NodeFilter.SHOW_TEXT,null,!1);let a,h=[];for(;a=o.nextNode();)h.push(a),h.length==e&&(r(h.slice(0,e)),h=h.slice(1,e));return h.length>0&&r(h),i}reconcileLayoutSettings(t){var e={layout:t.layout,spread:t.spread,orientation:t.orientation};return this.properties.forEach((function(t){var i,n,s=t.replace(\"rendition:\",\"\"),r=s.indexOf(\"-\");-1!=r&&(i=s.slice(0,r),n=s.slice(r+1),e[i]=n)})),e}cfiFromRange(t){return new h.a(t,this.cfiBase).toString()}cfiFromElement(t){return new h.a(t,this.cfiBase).toString()}unload(){this.document=void 0,this.contents=void 0,this.output=void 0}destroy(){this.unload(),this.hooks.serialize.clear(),this.hooks.content.clear(),this.hooks=void 0,this.idref=void 0,this.linear=void 0,this.properties=void 0,this.index=void 0,this.href=void 0,this.url=void 0,this.next=void 0,this.prev=void 0,this.cfiBase=void 0}};var p=class{constructor(){this.spineItems=[],this.spineByHref={},this.spineById={},this.hooks={},this.hooks.serialize=new l.a,this.hooks.content=new l.a,this.hooks.content.register(c.a),this.hooks.content.register(c.b),this.hooks.content.register(c.d),this.epubcfi=new h.a,this.loaded=!1,this.items=void 0,this.manifest=void 0,this.spineNodeIndex=void 0,this.baseUrl=void 0,this.length=void 0}unpack(t,e,i){this.items=t.spine,this.manifest=t.manifest,this.spineNodeIndex=t.spineNodeIndex,this.baseUrl=t.baseUrl||t.basePath||\"\",this.length=this.items.length,this.items.forEach((t,n)=>{var s,r=this.manifest[t.idref];t.index=n,t.cfiBase=this.epubcfi.generateChapterComponent(this.spineNodeIndex,t.index,t.id),t.href&&(t.url=e(t.href,!0),t.canonical=i(t.href)),r&&(t.href=r.href,t.url=e(t.href,!0),t.canonical=i(t.href),r.properties.length&&t.properties.push.apply(t.properties,r.properties)),\"yes\"===t.linear?(t.prev=function(){let e=t.index;for(;e>0;){let t=this.get(e-1);if(t&&t.linear)return t;e-=1}}.bind(this),t.next=function(){let e=t.index;for(;e<this.spineItems.length-1;){let t=this.get(e+1);if(t&&t.linear)return t;e+=1}}.bind(this)):(t.prev=function(){},t.next=function(){}),s=new f(t,this.hooks),this.append(s)}),this.loaded=!0}get(t){var e=0;if(void 0===t)for(;e<this.spineItems.length;){let t=this.spineItems[e];if(t&&t.linear)break;e+=1}else if(this.epubcfi.isCfiString(t)){e=new h.a(t).spinePos}else\"number\"==typeof t||!1===isNaN(t)?e=t:\"string\"==typeof t&&0===t.indexOf(\"#\")?e=this.spineById[t.substring(1)]:\"string\"==typeof t&&(t=t.split(\"#\")[0],e=this.spineByHref[t]||this.spineByHref[encodeURI(t)]);return this.spineItems[e]||null}append(t){var e=this.spineItems.length;return t.index=e,this.spineItems.push(t),this.spineByHref[decodeURI(t.href)]=e,this.spineByHref[encodeURI(t.href)]=e,this.spineByHref[t.href]=e,this.spineById[t.idref]=e,e}prepend(t){return this.spineByHref[t.href]=0,this.spineById[t.idref]=0,this.spineItems.forEach((function(t,e){t.index=e})),0}remove(t){var e=this.spineItems.indexOf(t);if(e>-1)return delete this.spineByHref[t.href],delete this.spineById[t.idref],this.spineItems.splice(e,1)}each(){return this.spineItems.forEach.apply(this.spineItems,arguments)}first(){let t=0;do{let e=this.get(t);if(e&&e.linear)return e;t+=1}while(t<this.spineItems.length)}last(){let t=this.spineItems.length-1;do{let e=this.get(t);if(e&&e.linear)return e;t-=1}while(t>=0)}destroy(){this.each(t=>t.destroy()),this.spineItems=void 0,this.spineByHref=void 0,this.spineById=void 0,this.hooks.serialize.clear(),this.hooks.content.clear(),this.hooks=void 0,this.epubcfi=void 0,this.loaded=!1,this.items=void 0,this.manifest=void 0,this.spineNodeIndex=void 0,this.baseUrl=void 0,this.length=void 0}},g=i(9),m=i(1);class v{constructor(t,e,i){this.spine=t,this.request=e,this.pause=i||100,this.q=new g.a(this),this.epubcfi=new h.a,this._locations=[],this._locationsWords=[],this.total=0,this.break=150,this._current=0,this._wordCounter=0,this.currentLocation=\"\",this._currentCfi=\"\",this.processingTimeout=void 0}generate(t){return t&&(this.break=t),this.q.pause(),this.spine.each(function(t){t.linear&&this.q.enqueue(this.process.bind(this),t)}.bind(this)),this.q.run().then(function(){return this.total=this._locations.length-1,this._currentCfi&&(this.currentLocation=this._currentCfi),this._locations}.bind(this))}createRange(){return{startContainer:void 0,startOffset:void 0,endContainer:void 0,endOffset:void 0}}process(t){return t.load(this.request).then(function(e){var i=new r.defer,n=this.parse(e,t.cfiBase);return this._locations=this._locations.concat(n),t.unload(),this.processingTimeout=setTimeout(()=>i.resolve(n),this.pause),i.promise}.bind(this))}parse(t,e,i){var n,s,o=[],a=t.ownerDocument,l=Object(r.qs)(a,\"body\"),c=0,u=i||this.break;if(Object(r.sprint)(l,function(t){var i,r=t.length,a=0;if(0===t.textContent.trim().length)return!1;for(0==c&&((n=this.createRange()).startContainer=t,n.startOffset=0),(i=u-c)>r&&(c+=r,a=r);a<r;)if(i=u-c,0===c&&(a+=1,(n=this.createRange()).startContainer=t,n.startOffset=a),a+i>=r)c+=r-a,a=r;else{a+=i,n.endContainer=t,n.endOffset=a;let s=new h.a(n,e).toString();o.push(s),c=0}s=t}.bind(this)),n&&n.startContainer&&s){n.endContainer=s,n.endOffset=s.length;let t=new h.a(n,e).toString();o.push(t),c=0}return o}generateFromWords(t,e,i){var n=t?new h.a(t):void 0;return this.q.pause(),this._locationsWords=[],this._wordCounter=0,this.spine.each(function(t){t.linear&&(n?t.index>=n.spinePos&&this.q.enqueue(this.processWords.bind(this),t,e,n,i):this.q.enqueue(this.processWords.bind(this),t,e,n,i))}.bind(this)),this.q.run().then(function(){return this._currentCfi&&(this.currentLocation=this._currentCfi),this._locationsWords}.bind(this))}processWords(t,e,i,n){return n&&this._locationsWords.length>=n?Promise.resolve():t.load(this.request).then(function(s){var o=new r.defer,a=this.parseWords(s,t,e,i),h=n-this._locationsWords.length;return this._locationsWords=this._locationsWords.concat(a.length>=n?a.slice(0,h):a),t.unload(),this.processingTimeout=setTimeout(()=>o.resolve(a),this.pause),o.promise}.bind(this))}countWords(t){return(t=(t=(t=t.replace(/(^\\s*)|(\\s*$)/gi,\"\")).replace(/[ ]{2,}/gi,\" \")).replace(/\\n /,\"\\n\")).split(\" \").length}parseWords(t,e,i,n){var s,o=e.cfiBase,a=[],l=t.ownerDocument,c=Object(r.qs)(l,\"body\"),u=i,d=!n||n.spinePos!==e.index;n&&e.index===n.spinePos&&(s=n.findNode(n.range?n.path.steps.concat(n.start.steps):n.path.steps,t.ownerDocument));return Object(r.sprint)(c,function(t){if(!d){if(t!==s)return!1;d=!0}if(t.textContent.length<10&&0===t.textContent.trim().length)return!1;var e,i=this.countWords(t.textContent),n=0;if(0===i)return!1;for((e=u-this._wordCounter)>i&&(this._wordCounter+=i,n=i);n<i;)if(n+(e=u-this._wordCounter)>=i)this._wordCounter+=i-n,n=i;else{n+=e;let i=new h.a(t,o);a.push({cfi:i.toString(),wordCount:this._wordCounter}),this._wordCounter=0}t}.bind(this)),a}locationFromCfi(t){let e;return h.a.prototype.isCfiString(t)&&(t=new h.a(t)),0===this._locations.length?-1:(e=Object(r.locationOf)(t,this._locations,this.epubcfi.compare),e>this.total?this.total:e)}percentageFromCfi(t){if(0===this._locations.length)return null;var e=this.locationFromCfi(t);return this.percentageFromLocation(e)}percentageFromLocation(t){return t&&this.total?t/this.total:0}cfiFromLocation(t){var e=-1;return\"number\"!=typeof t&&(t=parseInt(t)),t>=0&&t<this._locations.length&&(e=this._locations[t]),e}cfiFromPercentage(t){let e;if(t>1&&console.warn(\"Normalize cfiFromPercentage value to between 0 - 1\"),t>=1){let t=new h.a(this._locations[this.total]);return t.collapse(),t.toString()}return e=Math.ceil(this.total*t),this.cfiFromLocation(e)}load(t){return this._locations=\"string\"==typeof t?JSON.parse(t):t,this.total=this._locations.length-1,this._locations}save(){return JSON.stringify(this._locations)}getCurrent(){return this._current}setCurrent(t){var e;if(\"string\"==typeof t)this._currentCfi=t;else{if(\"number\"!=typeof t)return;this._current=t}0!==this._locations.length&&(\"string\"==typeof t?(e=this.locationFromCfi(t),this._current=e):e=t,this.emit(m.c.LOCATIONS.CHANGED,{percentage:this.percentageFromLocation(e)}))}get currentLocation(){return this._current}set currentLocation(t){this.setCurrent(t)}length(){return this._locations.length}destroy(){this.spine=void 0,this.request=void 0,this.pause=void 0,this.q.stop(),this.q=void 0,this.epubcfi=void 0,this._locations=void 0,this.total=void 0,this.break=void 0,this._current=void 0,this.currentLocation=void 0,this._currentCfi=void 0,clearTimeout(this.processingTimeout)}}s()(v.prototype);var y=v,b=i(7),w=i.n(b);var x=class{constructor(t){this.packagePath=\"\",this.directory=\"\",this.encoding=\"\",t&&this.parse(t)}parse(t){var e;if(!t)throw new Error(\"Container File Not Found\");if(!(e=Object(r.qs)(t,\"rootfile\")))throw new Error(\"No RootFile Found\");this.packagePath=e.getAttribute(\"full-path\"),this.directory=w.a.dirname(this.packagePath),this.encoding=t.xmlEncoding}destroy(){this.packagePath=void 0,this.directory=void 0,this.encoding=void 0}};var E=class{constructor(t){this.manifest={},this.navPath=\"\",this.ncxPath=\"\",this.coverPath=\"\",this.spineNodeIndex=0,this.spine=[],this.metadata={},t&&this.parse(t)}parse(t){var e,i,n;if(!t)throw new Error(\"Package File Not Found\");if(!(e=Object(r.qs)(t,\"metadata\")))throw new Error(\"No Metadata Found\");if(!(i=Object(r.qs)(t,\"manifest\")))throw new Error(\"No Manifest Found\");if(!(n=Object(r.qs)(t,\"spine\")))throw new Error(\"No Spine Found\");return this.manifest=this.parseManifest(i),this.navPath=this.findNavPath(i),this.ncxPath=this.findNcxPath(i,n),this.coverPath=this.findCoverPath(t),this.spineNodeIndex=Object(r.indexOfElementNode)(n),this.spine=this.parseSpine(n,this.manifest),this.uniqueIdentifier=this.findUniqueIdentifier(t),this.metadata=this.parseMetadata(e),this.metadata.direction=n.getAttribute(\"page-progression-direction\"),{metadata:this.metadata,spine:this.spine,manifest:this.manifest,navPath:this.navPath,ncxPath:this.ncxPath,coverPath:this.coverPath,spineNodeIndex:this.spineNodeIndex}}parseMetadata(t){var e={};return e.title=this.getElementText(t,\"title\"),e.creator=this.getElementText(t,\"creator\"),e.description=this.getElementText(t,\"description\"),e.pubdate=this.getElementText(t,\"date\"),e.publisher=this.getElementText(t,\"publisher\"),e.identifier=this.getElementText(t,\"identifier\"),e.language=this.getElementText(t,\"language\"),e.rights=this.getElementText(t,\"rights\"),e.modified_date=this.getPropertyText(t,\"dcterms:modified\"),e.layout=this.getPropertyText(t,\"rendition:layout\"),e.orientation=this.getPropertyText(t,\"rendition:orientation\"),e.flow=this.getPropertyText(t,\"rendition:flow\"),e.viewport=this.getPropertyText(t,\"rendition:viewport\"),e.media_active_class=this.getPropertyText(t,\"media:active-class\"),e.spread=this.getPropertyText(t,\"rendition:spread\"),e}parseManifest(t){var e={},i=Object(r.qsa)(t,\"item\");return Array.prototype.slice.call(i).forEach((function(t){var i=t.getAttribute(\"id\"),n=t.getAttribute(\"href\")||\"\",s=t.getAttribute(\"media-type\")||\"\",r=t.getAttribute(\"media-overlay\")||\"\",o=t.getAttribute(\"properties\")||\"\";e[i]={href:n,type:s,overlay:r,properties:o.length?o.split(\" \"):[]}})),e}parseSpine(t,e){var i=[],n=Object(r.qsa)(t,\"itemref\");return Array.prototype.slice.call(n).forEach((function(t,e){var n=t.getAttribute(\"idref\"),s=t.getAttribute(\"properties\")||\"\",r=s.length?s.split(\" \"):[],o={id:t.getAttribute(\"id\"),idref:n,linear:t.getAttribute(\"linear\")||\"yes\",properties:r,index:e};i.push(o)})),i}findUniqueIdentifier(t){var e=t.documentElement.getAttribute(\"unique-identifier\");if(!e)return\"\";var i=t.getElementById(e);return i&&\"identifier\"===i.localName&&\"http://purl.org/dc/elements/1.1/\"===i.namespaceURI&&i.childNodes.length>0?i.childNodes[0].nodeValue.trim():\"\"}findNavPath(t){var e=Object(r.qsp)(t,\"item\",{properties:\"nav\"});return!!e&&e.getAttribute(\"href\")}findNcxPath(t,e){var i,n=Object(r.qsp)(t,\"item\",{\"media-type\":\"application/x-dtbncx+xml\"});return n||(i=e.getAttribute(\"toc\"))&&(n=t.querySelector(\"#\"+i)),!!n&&n.getAttribute(\"href\")}findCoverPath(t){Object(r.qs)(t,\"package\").getAttribute(\"version\");var e=Object(r.qsp)(t,\"item\",{properties:\"cover-image\"});if(e)return e.getAttribute(\"href\");var i=Object(r.qsp)(t,\"meta\",{name:\"cover\"});if(i){var n=i.getAttribute(\"content\"),s=t.getElementById(n);return s?s.getAttribute(\"href\"):\"\"}return!1}getElementText(t,e){var i,n=t.getElementsByTagNameNS(\"http://purl.org/dc/elements/1.1/\",e);return n&&0!==n.length&&(i=n[0]).childNodes.length?i.childNodes[0].nodeValue:\"\"}getPropertyText(t,e){var i=Object(r.qsp)(t,\"meta\",{property:e});return i&&i.childNodes.length?i.childNodes[0].nodeValue:\"\"}load(t){this.metadata=t.metadata;let e=t.readingOrder||t.spine;return this.spine=e.map((t,e)=>(t.index=e,t.linear=t.linear||\"yes\",t)),t.resources.forEach((t,e)=>{this.manifest[e]=t,t.rel&&\"cover\"===t.rel[0]&&(this.coverPath=t.href)}),this.spineNodeIndex=0,this.toc=t.toc.map((t,e)=>(t.label=t.title,t)),{metadata:this.metadata,spine:this.spine,manifest:this.manifest,navPath:this.navPath,ncxPath:this.ncxPath,coverPath:this.coverPath,spineNodeIndex:this.spineNodeIndex,toc:this.toc}}destroy(){this.manifest=void 0,this.navPath=void 0,this.ncxPath=void 0,this.coverPath=void 0,this.spineNodeIndex=void 0,this.spine=void 0,this.metadata=void 0}};var S=class{constructor(t){this.toc=[],this.tocByHref={},this.tocById={},this.landmarks=[],this.landmarksByType={},this.length=0,t&&this.parse(t)}parse(t){let e,i,n=t.nodeType;n&&(e=Object(r.qs)(t,\"html\"),i=Object(r.qs)(t,\"ncx\")),n?e?(this.toc=this.parseNav(t),this.landmarks=this.parseLandmarks(t)):i&&(this.toc=this.parseNcx(t)):this.toc=this.load(t),this.length=0,this.unpack(this.toc)}unpack(t){for(var e,i=0;i<t.length;i++)(e=t[i]).href&&(this.tocByHref[e.href]=i),e.id&&(this.tocById[e.id]=i),this.length++,e.subitems.length&&this.unpack(e.subitems)}get(t){var e;return t?(0===t.indexOf(\"#\")?e=this.tocById[t.substring(1)]:t in this.tocByHref&&(e=this.tocByHref[t]),this.getByIndex(t,e,this.toc)):this.toc}getByIndex(t,e,i){if(0===i.length)return;const n=i[e];if(!n||t!==n.id&&t!==n.href){let n;for(let s=0;s<i.length&&(n=this.getByIndex(t,e,i[s].subitems),!n);++s);return n}return n}landmark(t){var e;return t?(e=this.landmarksByType[t],this.landmarks[e]):this.landmarks}parseNav(t){var e=Object(r.querySelectorByType)(t,\"nav\",\"toc\"),i=[];if(!e)return i;let n=Object(r.filterChildren)(e,\"ol\",!0);return n?i=this.parseNavList(n):i}parseNavList(t,e){const i=[];if(!t)return i;if(!t.children)return i;for(let n=0;n<t.children.length;n++){const s=this.navItem(t.children[n],e);s&&i.push(s)}return i}navItem(t,e){let i=t.getAttribute(\"id\")||void 0,n=Object(r.filterChildren)(t,\"a\",!0)||Object(r.filterChildren)(t,\"span\",!0);if(!n)return;let s=n.getAttribute(\"href\")||\"\";i||(i=s);let o=n.textContent||\"\",a=[],h=Object(r.filterChildren)(t,\"ol\",!0);return h&&(a=this.parseNavList(h,i)),{id:i,href:s,label:o,subitems:a,parent:e}}parseLandmarks(t){var e,i,n=Object(r.querySelectorByType)(t,\"nav\",\"landmarks\"),s=n?Object(r.qsa)(n,\"li\"):[],o=s.length,a=[];if(!s||0===o)return a;for(e=0;e<o;++e)(i=this.landmarkItem(s[e]))&&(a.push(i),this.landmarksByType[i.type]=e);return a}landmarkItem(t){let e=Object(r.filterChildren)(t,\"a\",!0);if(!e)return;let i=e.getAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\")||void 0;return{href:e.getAttribute(\"href\")||\"\",label:e.textContent||\"\",type:i}}parseNcx(t){var e,i,n=Object(r.qsa)(t,\"navPoint\"),s=n.length,o={},a=[];if(!n||0===s)return a;for(e=0;e<s;++e)o[(i=this.ncxItem(n[e])).id]=i,i.parent?o[i.parent].subitems.push(i):a.push(i);return a}ncxItem(t){var e,i=t.getAttribute(\"id\")||!1,n=Object(r.qs)(t,\"content\").getAttribute(\"src\"),s=Object(r.qs)(t,\"navLabel\"),o=s.textContent?s.textContent:\"\",a=t.parentNode;return!a||\"navPoint\"!==a.nodeName&&\"navPoint\"!==a.nodeName.split(\":\").slice(-1)[0]||(e=a.getAttribute(\"id\")),{id:i,href:n,label:o,subitems:[],parent:e}}load(t){return t.map(t=>(t.label=t.title,t.subitems=t.children?this.load(t.children):[],t))}forEach(t){return this.toc.forEach(t)}},N={application:{ecmascript:[\"es\",\"ecma\"],javascript:\"js\",ogg:\"ogx\",pdf:\"pdf\",postscript:[\"ps\",\"ai\",\"eps\",\"epsi\",\"epsf\",\"eps2\",\"eps3\"],\"rdf+xml\":\"rdf\",smil:[\"smi\",\"smil\"],\"xhtml+xml\":[\"xhtml\",\"xht\"],xml:[\"xml\",\"xsl\",\"xsd\",\"opf\",\"ncx\"],zip:\"zip\",\"x-httpd-eruby\":\"rhtml\",\"x-latex\":\"latex\",\"x-maker\":[\"frm\",\"maker\",\"frame\",\"fm\",\"fb\",\"book\",\"fbdoc\"],\"x-object\":\"o\",\"x-shockwave-flash\":[\"swf\",\"swfl\"],\"x-silverlight\":\"scr\",\"epub+zip\":\"epub\",\"font-tdpfr\":\"pfr\",\"inkml+xml\":[\"ink\",\"inkml\"],json:\"json\",\"jsonml+json\":\"jsonml\",\"mathml+xml\":\"mathml\",\"metalink+xml\":\"metalink\",mp4:\"mp4s\",\"omdoc+xml\":\"omdoc\",oxps:\"oxps\",\"vnd.amazon.ebook\":\"azw\",widget:\"wgt\",\"x-dtbook+xml\":\"dtb\",\"x-dtbresource+xml\":\"res\",\"x-font-bdf\":\"bdf\",\"x-font-ghostscript\":\"gsf\",\"x-font-linux-psf\":\"psf\",\"x-font-otf\":\"otf\",\"x-font-pcf\":\"pcf\",\"x-font-snf\":\"snf\",\"x-font-ttf\":[\"ttf\",\"ttc\"],\"x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"x-font-woff\":\"woff\",\"x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"x-mspublisher\":\"pub\",\"x-nzb\":\"nzb\",\"x-tgif\":\"obj\",\"xaml+xml\":\"xaml\",\"xml-dtd\":\"dtd\",\"xproc+xml\":\"xpl\",\"xslt+xml\":\"xslt\",\"internet-property-stream\":\"acx\",\"x-compress\":\"z\",\"x-compressed\":\"tgz\",\"x-gzip\":\"gz\"},audio:{flac:\"flac\",midi:[\"mid\",\"midi\",\"kar\",\"rmi\"],mpeg:[\"mpga\",\"mpega\",\"mp2\",\"mp3\",\"m4a\",\"mp2a\",\"m2a\",\"m3a\"],mpegurl:\"m3u\",ogg:[\"oga\",\"ogg\",\"spx\"],\"x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"x-ms-wma\":\"wma\",\"x-wav\":\"wav\",adpcm:\"adp\",mp4:\"mp4a\",webm:\"weba\",\"x-aac\":\"aac\",\"x-caf\":\"caf\",\"x-matroska\":\"mka\",\"x-pn-realaudio-plugin\":\"rmp\",xm:\"xm\",mid:[\"mid\",\"rmi\"]},image:{gif:\"gif\",ief:\"ief\",jpeg:[\"jpeg\",\"jpg\",\"jpe\"],pcx:\"pcx\",png:\"png\",\"svg+xml\":[\"svg\",\"svgz\"],tiff:[\"tiff\",\"tif\"],\"x-icon\":\"ico\",bmp:\"bmp\",webp:\"webp\",\"x-pict\":[\"pic\",\"pct\"],\"x-tga\":\"tga\",\"cis-cod\":\"cod\"},text:{\"cache-manifest\":[\"manifest\",\"appcache\"],css:\"css\",csv:\"csv\",html:[\"html\",\"htm\",\"shtml\",\"stm\"],mathml:\"mml\",plain:[\"txt\",\"text\",\"brf\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"bas\"],richtext:\"rtx\",\"tab-separated-values\":\"tsv\",\"x-bibtex\":\"bib\"},video:{mpeg:[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\",\"mp2\",\"mpa\",\"mpv2\"],mp4:[\"mp4\",\"mp4v\",\"mpg4\"],quicktime:[\"qt\",\"mov\"],ogg:\"ogv\",\"vnd.mpegurl\":[\"mxu\",\"m4u\"],\"x-flv\":\"flv\",\"x-la-asf\":[\"lsf\",\"lsx\"],\"x-mng\":\"mng\",\"x-ms-asf\":[\"asf\",\"asx\",\"asr\"],\"x-ms-wm\":\"wm\",\"x-ms-wmv\":\"wmv\",\"x-ms-wmx\":\"wmx\",\"x-ms-wvx\":\"wvx\",\"x-msvideo\":\"avi\",\"x-sgi-movie\":\"movie\",\"x-matroska\":[\"mpv\",\"mkv\",\"mk3d\",\"mks\"],\"3gpp2\":\"3g2\",h261:\"h261\",h263:\"h263\",h264:\"h264\",jpeg:\"jpgv\",jpm:[\"jpm\",\"jpgm\"],mj2:[\"mj2\",\"mjp2\"],\"vnd.ms-playready.media.pyv\":\"pyv\",\"vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"vnd.vivo\":\"viv\",webm:\"webm\",\"x-f4v\":\"f4v\",\"x-m4v\":\"m4v\",\"x-ms-vob\":\"vob\",\"x-smv\":\"smv\"}},_=function(){var t,e,i,n,s={};for(t in N)if(N.hasOwnProperty(t))for(e in N[t])if(N[t].hasOwnProperty(e))if(\"string\"==typeof(i=N[t][e]))s[i]=t+\"/\"+e;else for(n=0;n<i.length;n++)s[i[n]]=t+\"/\"+e;return s}();var T={lookup:function(t){return t&&_[t.split(\".\").pop().toLowerCase()]||\"text/plain\"}};var C=class{constructor(t,e){this.settings={replacements:e&&e.replacements||\"base64\",archive:e&&e.archive,resolver:e&&e.resolver,request:e&&e.request},this.process(t)}process(t){this.manifest=t,this.resources=Object.keys(t).map((function(e){return t[e]})),this.replacementUrls=[],this.html=[],this.assets=[],this.css=[],this.urls=[],this.cssUrls=[],this.split(),this.splitUrls()}split(){this.html=this.resources.filter((function(t){if(\"application/xhtml+xml\"===t.type||\"text/html\"===t.type)return!0})),this.assets=this.resources.filter((function(t){if(\"application/xhtml+xml\"!==t.type&&\"text/html\"!==t.type)return!0})),this.css=this.resources.filter((function(t){if(\"text/css\"===t.type)return!0}))}splitUrls(){this.urls=this.assets.map(function(t){return t.href}.bind(this)),this.cssUrls=this.css.map((function(t){return t.href}))}createUrl(t){var e=new o.a(t),i=T.lookup(e.filename);return this.settings.archive?this.settings.archive.createUrl(t,{base64:\"base64\"===this.settings.replacements}):\"base64\"===this.settings.replacements?this.settings.request(t,\"blob\").then(t=>Object(r.blob2base64)(t)).then(t=>Object(r.createBase64Url)(t,i)):this.settings.request(t,\"blob\").then(t=>Object(r.createBlobUrl)(t,i))}replacements(){if(\"none\"===this.settings.replacements)return new Promise(function(t){t(this.urls)}.bind(this));var t=this.urls.map(t=>{var e=this.settings.resolver(t);return this.createUrl(e).catch(t=>(console.error(t),null))});return Promise.all(t).then(t=>(this.replacementUrls=t.filter(t=>\"string\"==typeof t),t))}replaceCss(t,e){var i=[];return t=t||this.settings.archive,e=e||this.settings.resolver,this.cssUrls.forEach(function(n){var s=this.createCssFile(n,t,e).then(function(t){var e=this.urls.indexOf(n);e>-1&&(this.replacementUrls[e]=t)}.bind(this));i.push(s)}.bind(this)),Promise.all(i)}createCssFile(t){if(w.a.isAbsolute(t))return new Promise((function(t){t()}));var e,i=this.settings.resolver(t);e=this.settings.archive?this.settings.archive.getText(i):this.settings.request(i,\"text\");var n=this.urls.map(t=>{var e=this.settings.resolver(t);return new a.a(i).relative(e)});return e?e.then(t=>(t=Object(c.e)(t,n,this.replacementUrls),\"base64\"===this.settings.replacements?Object(r.createBase64Url)(t,\"text/css\"):Object(r.createBlobUrl)(t,\"text/css\")),t=>new Promise((function(t){t()}))):new Promise((function(t){t()}))}relativeTo(t,e){return e=e||this.settings.resolver,this.urls.map(function(i){var n=e(i);return new a.a(t).relative(n)}.bind(this))}get(t){var e=this.urls.indexOf(t);if(-1!==e)return this.replacementUrls.length?new Promise(function(t,i){t(this.replacementUrls[e])}.bind(this)):this.createUrl(t)}substitute(t,e){var i;return i=e?this.relativeTo(e):this.urls,Object(c.e)(t,i,this.replacementUrls)}destroy(){this.settings=void 0,this.manifest=void 0,this.resources=void 0,this.replacementUrls=void 0,this.html=void 0,this.assets=void 0,this.css=void 0,this.urls=void 0,this.cssUrls=void 0}};var O=class{constructor(t){this.pages=[],this.locations=[],this.epubcfi=new h.a,this.firstPage=0,this.lastPage=0,this.totalPages=0,this.toc=void 0,this.ncx=void 0,t&&(this.pageList=this.parse(t)),this.pageList&&this.pageList.length&&this.process(this.pageList)}parse(t){var e=Object(r.qs)(t,\"html\"),i=Object(r.qs)(t,\"ncx\");return e?this.parseNav(t):i?this.parseNcx(t):void 0}parseNav(t){var e,i,n=Object(r.querySelectorByType)(t,\"nav\",\"page-list\"),s=n?Object(r.qsa)(n,\"li\"):[],o=s.length,a=[];if(!s||0===o)return a;for(e=0;e<o;++e)i=this.item(s[e]),a.push(i);return a}parseNcx(t){var e,i,n,s,o=[],a=0;if(!(i=Object(r.qs)(t,\"pageList\")))return o;if(s=(n=Object(r.qsa)(i,\"pageTarget\")).length,!n||0===n.length)return o;for(a=0;a<s;++a)e=this.ncxItem(n[a]),o.push(e);return o}ncxItem(t){var e=Object(r.qs)(t,\"navLabel\"),i=Object(r.qs)(e,\"text\").textContent;return{href:Object(r.qs)(t,\"content\").getAttribute(\"src\"),page:parseInt(i,10)}}item(t){var e,i,n=Object(r.qs)(t,\"a\"),s=n.getAttribute(\"href\")||\"\",o=n.textContent||\"\",a=parseInt(o);return-1!=s.indexOf(\"epubcfi\")?(i=(e=s.split(\"#\"))[0],{cfi:e.length>1&&e[1],href:s,packageUrl:i,page:a}):{href:s,page:a}}process(t){t.forEach((function(t){this.pages.push(t.page),t.cfi&&this.locations.push(t.cfi)}),this),this.firstPage=parseInt(this.pages[0]),this.lastPage=parseInt(this.pages[this.pages.length-1]),this.totalPages=this.lastPage-this.firstPage}pageFromCfi(t){var e=-1;if(0===this.locations.length)return-1;var i=Object(r.indexOfSorted)(t,this.locations,this.epubcfi.compare);return-1!=i?e=this.pages[i]:void 0!==(e=(i=Object(r.locationOf)(t,this.locations,this.epubcfi.compare))-1>=0?this.pages[i-1]:this.pages[0])||(e=-1),e}cfiFromPage(t){var e=-1;\"number\"!=typeof t&&(t=parseInt(t));var i=this.pages.indexOf(t);return-1!=i&&(e=this.locations[i]),e}pageFromPercentage(t){return Math.round(this.totalPages*t)}percentageFromPage(t){var e=(t-this.firstPage)/this.totalPages;return Math.round(1e3*e)/1e3}percentageFromCfi(t){var e=this.pageFromCfi(t);return this.percentageFromPage(e)}destroy(){this.pages=void 0,this.locations=void 0,this.epubcfi=void 0,this.pageList=void 0,this.toc=void 0,this.ncx=void 0}},I=i(16),R=i(29),k=i.n(R);var A=class{constructor(){this.zip=void 0,this.urlCache={},this.checkRequirements()}checkRequirements(){try{this.zip=new k.a}catch(t){throw new Error(\"JSZip lib not loaded\")}}open(t,e){return this.zip.loadAsync(t,{base64:e})}openUrl(t,e){return u(t,\"binary\").then(function(t){return this.zip.loadAsync(t,{base64:e})}.bind(this))}request(t,e){var i,n=new r.defer,s=new a.a(t);return e||(e=s.extension),(i=\"blob\"==e?this.getBlob(t):this.getText(t))?i.then(function(t){let i=this.handleResponse(t,e);n.resolve(i)}.bind(this)):n.reject({message:\"File not found in the epub: \"+t,stack:(new Error).stack}),n.promise}handleResponse(t,e){return\"json\"==e?JSON.parse(t):Object(r.isXml)(e)?Object(r.parse)(t,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(t,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(t,\"text/html\"):t}getBlob(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return e=e||T.lookup(n.name),n.async(\"uint8array\").then((function(t){return new Blob([t],{type:e})}))}getText(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return n.async(\"string\").then((function(t){return t}))}getBase64(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return e=e||T.lookup(n.name),n.async(\"base64\").then((function(t){return\"data:\"+e+\";base64,\"+t}))}createUrl(t,e){var i,n,s=new r.defer,o=window.URL||window.webkitURL||window.mozURL,a=e&&e.base64;return t in this.urlCache?(s.resolve(this.urlCache[t]),s.promise):(a?(n=this.getBase64(t))&&n.then(function(e){this.urlCache[t]=e,s.resolve(e)}.bind(this)):(n=this.getBlob(t))&&n.then(function(e){i=o.createObjectURL(e),this.urlCache[t]=i,s.resolve(i)}.bind(this)),n||s.reject({message:\"File not found in the epub: \"+t,stack:(new Error).stack}),s.promise)}revokeUrl(t){var e=window.URL||window.webkitURL||window.mozURL,i=this.urlCache[t];i&&e.revokeObjectURL(i)}destroy(){var t=window.URL||window.webkitURL||window.mozURL;for(let e in this.urlCache)t.revokeObjectURL(e);this.zip=void 0,this.urlCache={}}},L=i(23),j=i.n(L);class D{constructor(t,e,i){this.urlCache={},this.storage=void 0,this.name=t,this.requester=e||u,this.resolver=i,this.online=!0,this.checkRequirements(),this.addListeners()}checkRequirements(){try{let t;void 0===j.a&&(t=j.a),this.storage=t.createInstance({name:this.name})}catch(t){throw new Error(\"localForage lib not loaded\")}}addListeners(){this._status=this.status.bind(this),window.addEventListener(\"online\",this._status),window.addEventListener(\"offline\",this._status)}removeListeners(){window.removeEventListener(\"online\",this._status),window.removeEventListener(\"offline\",this._status),this._status=void 0}status(t){let e=navigator.onLine;this.online=e,e?this.emit(\"online\",this):this.emit(\"offline\",this)}add(t,e){let i=t.resources.map(t=>{let{href:i}=t,n=this.resolver(i),s=window.encodeURIComponent(n);return this.storage.getItem(s).then(t=>!t||e?this.requester(n,\"binary\").then(t=>this.storage.setItem(s,t)):t)});return Promise.all(i)}put(t,e,i){let n=window.encodeURIComponent(t);return this.storage.getItem(n).then(s=>s||this.requester(t,\"binary\",e,i).then(t=>this.storage.setItem(n,t)))}request(t,e,i,n){return this.online?this.requester(t,e,i,n).then(e=>(this.put(t),e)):this.retrieve(t,e)}retrieve(t,e){new r.defer;var i=new a.a(t);return e||(e=i.extension),(\"blob\"==e?this.getBlob(t):this.getText(t)).then(i=>{var n,s=new r.defer;return i?(n=this.handleResponse(i,e),s.resolve(n)):s.reject({message:\"File not found in storage: \"+t,stack:(new Error).stack}),s.promise})}handleResponse(t,e){return\"json\"==e?JSON.parse(t):Object(r.isXml)(e)?Object(r.parse)(t,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(t,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(t,\"text/html\"):t}getBlob(t,e){let i=window.encodeURIComponent(t);return this.storage.getItem(i).then((function(i){if(i)return e=e||T.lookup(t),new Blob([i],{type:e})}))}getText(t,e){let i=window.encodeURIComponent(t);return e=e||T.lookup(t),this.storage.getItem(i).then((function(t){var i,n=new r.defer,s=new FileReader;if(t)return i=new Blob([t],{type:e}),s.addEventListener(\"loadend\",()=>{n.resolve(s.result)}),s.readAsText(i,e),n.promise}))}getBase64(t,e){let i=window.encodeURIComponent(t);return e=e||T.lookup(t),this.storage.getItem(i).then(t=>{var i,n=new r.defer,s=new FileReader;if(t)return i=new Blob([t],{type:e}),s.addEventListener(\"loadend\",()=>{n.resolve(s.result)}),s.readAsDataURL(i,e),n.promise})}createUrl(t,e){var i,n,s=new r.defer,o=window.URL||window.webkitURL||window.mozURL,a=e&&e.base64;return t in this.urlCache?(s.resolve(this.urlCache[t]),s.promise):(a?(n=this.getBase64(t))&&n.then(function(e){this.urlCache[t]=e,s.resolve(e)}.bind(this)):(n=this.getBlob(t))&&n.then(function(e){i=o.createObjectURL(e),this.urlCache[t]=i,s.resolve(i)}.bind(this)),n||s.reject({message:\"File not found in storage: \"+t,stack:(new Error).stack}),s.promise)}revokeUrl(t){var e=window.URL||window.webkitURL||window.mozURL,i=this.urlCache[t];i&&e.revokeObjectURL(i)}destroy(){var t=window.URL||window.webkitURL||window.mozURL;for(let e in this.urlCache)t.revokeObjectURL(e);this.urlCache={},this.removeListeners()}}s()(D.prototype);var P=D;var M=class{constructor(t){this.interactive=\"\",this.fixedLayout=\"\",this.openToSpread=\"\",this.orientationLock=\"\",t&&this.parse(t)}parse(t){if(!t)return this;const e=Object(r.qs)(t,\"display_options\");if(!e)return this;return Object(r.qsa)(e,\"option\").forEach(t=>{let e=\"\";switch(t.childNodes.length&&(e=t.childNodes[0].nodeValue),t.attributes.name.value){case\"interactive\":this.interactive=e;break;case\"fixed-layout\":this.fixedLayout=e;break;case\"open-to-spread\":this.openToSpread=e;break;case\"orientation-lock\":this.orientationLock=e}}),this}destroy(){this.interactive=void 0,this.fixedLayout=void 0,this.openToSpread=void 0,this.orientationLock=void 0}};const z=\"binary\",B=\"base64\",q=\"epub\",F=\"opf\",U=\"json\",W=\"directory\";class H{constructor(t,e){void 0===e&&\"string\"!=typeof t&&t instanceof Blob==!1&&t instanceof ArrayBuffer==!1&&(e=t,t=void 0),this.settings=Object(r.extend)(this.settings||{},{requestMethod:void 0,requestCredentials:void 0,requestHeaders:void 0,encoding:void 0,replacements:void 0,canonical:void 0,openAs:void 0,store:void 0}),Object(r.extend)(this.settings,e),this.opening=new r.defer,this.opened=this.opening.promise,this.isOpen=!1,this.loading={manifest:new r.defer,spine:new r.defer,metadata:new r.defer,cover:new r.defer,navigation:new r.defer,pageList:new r.defer,resources:new r.defer,displayOptions:new r.defer},this.loaded={manifest:this.loading.manifest.promise,spine:this.loading.spine.promise,metadata:this.loading.metadata.promise,cover:this.loading.cover.promise,navigation:this.loading.navigation.promise,pageList:this.loading.pageList.promise,resources:this.loading.resources.promise,displayOptions:this.loading.displayOptions.promise},this.ready=Promise.all([this.loaded.manifest,this.loaded.spine,this.loaded.metadata,this.loaded.cover,this.loaded.navigation,this.loaded.resources,this.loaded.displayOptions]),this.isRendered=!1,this.request=this.settings.requestMethod||u,this.spine=new p,this.locations=new y(this.spine,this.load.bind(this)),this.navigation=void 0,this.pageList=void 0,this.url=void 0,this.path=void 0,this.archived=!1,this.archive=void 0,this.storage=void 0,this.resources=void 0,this.rendition=void 0,this.container=void 0,this.packaging=void 0,this.displayOptions=void 0,this.settings.store&&this.store(this.settings.store),t&&this.open(t,this.settings.openAs).catch(e=>{var i=new Error(\"Cannot load book at \"+t);this.emit(m.c.BOOK.OPEN_FAILED,i)})}open(t,e){var i,n=e||this.determineType(t);return n===z?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.openEpub(t)):n===B?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.openEpub(t,n)):n===q?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.request(t,\"binary\",this.settings.requestCredentials,this.settings.requestHeaders).then(this.openEpub.bind(this))):n==F?(this.url=new o.a(t),i=this.openPackaging(this.url.Path.toString())):n==U?(this.url=new o.a(t),i=this.openManifest(this.url.Path.toString())):(this.url=new o.a(t),i=this.openContainer(\"META-INF/container.xml\").then(this.openPackaging.bind(this))),i}openEpub(t,e){return this.unarchive(t,e||this.settings.encoding).then(()=>this.openContainer(\"META-INF/container.xml\")).then(t=>this.openPackaging(t))}openContainer(t){return this.load(t).then(t=>(this.container=new x(t),this.resolve(this.container.packagePath)))}openPackaging(t){return this.path=new a.a(t),this.load(t).then(t=>(this.packaging=new E(t),this.unpack(this.packaging)))}openManifest(t){return this.path=new a.a(t),this.load(t).then(t=>(this.packaging=new E,this.packaging.load(t),this.unpack(this.packaging)))}load(t){var e=this.resolve(t);return this.archived?this.archive.request(e):this.request(e,null,this.settings.requestCredentials,this.settings.requestHeaders)}resolve(t,e){if(t){var i=t;return t.indexOf(\"://\")>-1?t:(this.path&&(i=this.path.resolve(t)),0!=e&&this.url&&(i=this.url.resolve(i)),i)}}canonical(t){return t?this.settings.canonical?this.settings.canonical(t):this.resolve(t,!0):\"\"}determineType(t){var e;return\"base64\"===this.settings.encoding?B:\"string\"!=typeof t?z:((e=new o.a(t).path().extension)&&(e=e.replace(/\\?.*$/,\"\")),e?\"epub\"===e?q:\"opf\"===e?F:\"json\"===e?U:void 0:W)}unpack(t){this.package=t,\"\"===this.packaging.metadata.layout?this.load(this.url.resolve(\"META-INF/com.apple.ibooks.display-options.xml\")).then(t=>{this.displayOptions=new M(t),this.loading.displayOptions.resolve(this.displayOptions)}).catch(t=>{this.displayOptions=new M,this.loading.displayOptions.resolve(this.displayOptions)}):(this.displayOptions=new M,this.loading.displayOptions.resolve(this.displayOptions)),this.spine.unpack(this.packaging,this.resolve.bind(this),this.canonical.bind(this)),this.resources=new C(this.packaging.manifest,{archive:this.archive,resolver:this.resolve.bind(this),request:this.request.bind(this),replacements:this.settings.replacements||(this.archived?\"blobUrl\":\"base64\")}),this.loadNavigation(this.packaging).then(()=>{this.loading.navigation.resolve(this.navigation)}),this.packaging.coverPath&&(this.cover=this.resolve(this.packaging.coverPath)),this.loading.manifest.resolve(this.packaging.manifest),this.loading.metadata.resolve(this.packaging.metadata),this.loading.spine.resolve(this.spine),this.loading.cover.resolve(this.cover),this.loading.resources.resolve(this.resources),this.loading.pageList.resolve(this.pageList),this.isOpen=!0,this.archived||this.settings.replacements&&\"none\"!=this.settings.replacements?this.replacements().then(()=>{this.loaded.displayOptions.then(()=>{this.opening.resolve(this)})}).catch(t=>{console.error(t)}):this.loaded.displayOptions.then(()=>{this.opening.resolve(this)})}loadNavigation(t){let e=t.navPath||t.ncxPath,i=t.toc;return i?new Promise((e,n)=>{this.navigation=new S(i),t.pageList&&(this.pageList=new O(t.pageList)),e(this.navigation)}):e?this.load(e,\"xml\").then(t=>(this.navigation=new S(t),this.pageList=new O(t),this.navigation)):new Promise((t,e)=>{this.navigation=new S,this.pageList=new O,t(this.navigation)})}section(t){return this.spine.get(t)}renderTo(t,e){return this.rendition=new I.a(this,e),this.rendition.attachTo(t),this.rendition}setRequestCredentials(t){this.settings.requestCredentials=t}setRequestHeaders(t){this.settings.requestHeaders=t}unarchive(t,e){return this.archive=new A,this.archive.open(t,e)}store(t){let e=this.settings.replacements&&\"none\"!==this.settings.replacements,i=this.url,n=this.settings.requestMethod||u.bind(this);return this.storage=new P(t,n,this.resolve.bind(this)),this.request=this.storage.request.bind(this.storage),this.opened.then(()=>{this.archived&&(this.storage.requester=this.archive.request.bind(this.archive));let t=(t,e)=>{e.output=this.resources.substitute(t,e.url)};this.resources.settings.replacements=e||\"blobUrl\",this.resources.replacements().then(()=>this.resources.replaceCss()),this.storage.on(\"offline\",()=>{this.url=new o.a(\"/\",\"\"),this.spine.hooks.serialize.register(t)}),this.storage.on(\"online\",()=>{this.url=i,this.spine.hooks.serialize.deregister(t)})}),this.storage}coverUrl(){return this.loaded.cover.then(()=>this.cover?this.archived?this.archive.createUrl(this.cover):this.cover:null)}replacements(){return this.spine.hooks.serialize.register((t,e)=>{e.output=this.resources.substitute(t,e.url)}),this.resources.replacements().then(()=>this.resources.replaceCss())}getRange(t){var e=new h.a(t),i=this.spine.get(e.spinePos),n=this.load.bind(this);return i?i.load(n).then((function(t){return e.toRange(i.document)})):new Promise((t,e)=>{e(\"CFI could not be found\")})}key(t){var e=t||this.packaging.metadata.identifier||this.url.filename;return`epubjs:${m.b}:${e}`}destroy(){this.opened=void 0,this.loading=void 0,this.loaded=void 0,this.ready=void 0,this.isOpen=!1,this.isRendered=!1,this.spine&&this.spine.destroy(),this.locations&&this.locations.destroy(),this.pageList&&this.pageList.destroy(),this.archive&&this.archive.destroy(),this.resources&&this.resources.destroy(),this.container&&this.container.destroy(),this.packaging&&this.packaging.destroy(),this.rendition&&this.rendition.destroy(),this.displayOptions&&this.displayOptions.destroy(),this.spine=void 0,this.locations=void 0,this.pageList=void 0,this.archive=void 0,this.resources=void 0,this.container=void 0,this.packaging=void 0,this.rendition=void 0,this.navigation=void 0,this.url=void 0,this.path=void 0,this.archived=!1}}s()(H.prototype);e.a=H},function(t,e,i){var n=i(14).NAMESPACE;function s(t){return\"\"!==t}function r(t,e){return t.hasOwnProperty(e)||(t[e]=!0),t}function o(t){if(!t)return[];var e=function(t){return t?t.split(/[\\t\\n\\f\\r ]+/).filter(s):[]}(t);return Object.keys(e.reduce(r,{}))}function a(t,e){for(var i in t)e[i]=t[i]}function h(t,e){var i=t.prototype;if(!(i instanceof e)){function n(){}n.prototype=e.prototype,a(i,n=new n),t.prototype=i=n}i.constructor!=t&&(\"function\"!=typeof t&&console.error(\"unknown Class:\"+t),i.constructor=t)}var l={},c=l.ELEMENT_NODE=1,u=l.ATTRIBUTE_NODE=2,d=l.TEXT_NODE=3,f=l.CDATA_SECTION_NODE=4,p=l.ENTITY_REFERENCE_NODE=5,g=l.ENTITY_NODE=6,m=l.PROCESSING_INSTRUCTION_NODE=7,v=l.COMMENT_NODE=8,y=l.DOCUMENT_NODE=9,b=l.DOCUMENT_TYPE_NODE=10,w=l.DOCUMENT_FRAGMENT_NODE=11,x=l.NOTATION_NODE=12,E={},S={},N=(E.INDEX_SIZE_ERR=(S[1]=\"Index size error\",1),E.DOMSTRING_SIZE_ERR=(S[2]=\"DOMString size error\",2),E.HIERARCHY_REQUEST_ERR=(S[3]=\"Hierarchy request error\",3)),_=(E.WRONG_DOCUMENT_ERR=(S[4]=\"Wrong document\",4),E.INVALID_CHARACTER_ERR=(S[5]=\"Invalid character\",5),E.NO_DATA_ALLOWED_ERR=(S[6]=\"No data allowed\",6),E.NO_MODIFICATION_ALLOWED_ERR=(S[7]=\"No modification allowed\",7),E.NOT_FOUND_ERR=(S[8]=\"Not found\",8)),T=(E.NOT_SUPPORTED_ERR=(S[9]=\"Not supported\",9),E.INUSE_ATTRIBUTE_ERR=(S[10]=\"Attribute in use\",10));E.INVALID_STATE_ERR=(S[11]=\"Invalid state\",11),E.SYNTAX_ERR=(S[12]=\"Syntax error\",12),E.INVALID_MODIFICATION_ERR=(S[13]=\"Invalid modification\",13),E.NAMESPACE_ERR=(S[14]=\"Invalid namespace\",14),E.INVALID_ACCESS_ERR=(S[15]=\"Invalid access\",15);function C(t,e){if(e instanceof Error)var i=e;else i=this,Error.call(this,S[t]),this.message=S[t],Error.captureStackTrace&&Error.captureStackTrace(this,C);return i.code=t,e&&(this.message=this.message+\": \"+e),i}function O(){}function I(t,e){this._node=t,this._refresh=e,R(this)}function R(t){var e=t._node._inc||t._node.ownerDocument._inc;if(t._inc!=e){var i=t._refresh(t._node);at(t,\"length\",i.length),a(i,t),t._inc=e}}function k(){}function A(t,e){for(var i=t.length;i--;)if(t[i]===e)return i}function L(t,e,i,s){if(s?e[A(e,s)]=i:e[e.length++]=i,t){i.ownerElement=t;var r=t.ownerDocument;r&&(s&&q(r,t,s),function(t,e,i){t&&t._inc++,i.namespaceURI===n.XMLNS&&(e._nsMap[i.prefix?i.localName:\"\"]=i.value)}(r,t,i))}}function j(t,e,i){var n=A(e,i);if(!(n>=0))throw C(_,new Error(t.tagName+\"@\"+i));for(var s=e.length-1;n<s;)e[n]=e[++n];if(e.length=s,t){var r=t.ownerDocument;r&&(q(r,t,i),i.ownerElement=null)}}function D(){}function P(){}function M(t){return(\"<\"==t?\"<\":\">\"==t&&\">\")||\"&\"==t&&\"&\"||'\"'==t&&\""\"||\"&#\"+t.charCodeAt()+\";\"}function z(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(z(t,e))return!0}while(t=t.nextSibling)}function B(){}function q(t,e,i,s){t&&t._inc++,i.namespaceURI===n.XMLNS&&delete e._nsMap[i.prefix?i.localName:\"\"]}function F(t,e,i){if(t&&t._inc){t._inc++;var n=e.childNodes;if(i)n[n.length++]=i;else{for(var s=e.firstChild,r=0;s;)n[r++]=s,s=s.nextSibling;n.length=r}}}function U(t,e){var i=e.previousSibling,n=e.nextSibling;return i?i.nextSibling=n:t.firstChild=n,n?n.previousSibling=i:t.lastChild=i,F(t.ownerDocument,t),e}function W(t,e,i){var n=e.parentNode;if(n&&n.removeChild(e),e.nodeType===w){var s=e.firstChild;if(null==s)return e;var r=e.lastChild}else s=r=e;var o=i?i.previousSibling:t.lastChild;s.previousSibling=o,r.nextSibling=i,o?o.nextSibling=s:t.firstChild=s,null==i?t.lastChild=r:i.previousSibling=r;do{s.parentNode=t}while(s!==r&&(s=s.nextSibling));return F(t.ownerDocument||t,t),e.nodeType==w&&(e.firstChild=e.lastChild=null),e}function H(){this._nsMap={}}function V(){}function X(){}function G(){}function Y(){}function $(){}function K(){}function Z(){}function J(){}function Q(){}function tt(){}function et(){}function it(){}function nt(t,e){var i=[],n=9==this.nodeType&&this.documentElement||this,s=n.prefix,r=n.namespaceURI;if(r&&null==s&&null==(s=n.lookupPrefix(r)))var o=[{namespace:r,prefix:null}];return ot(this,i,t,e,o),i.join(\"\")}function st(t,e,i){var s=t.prefix||\"\",r=t.namespaceURI;if(!r)return!1;if(\"xml\"===s&&r===n.XML||r===n.XMLNS)return!1;for(var o=i.length;o--;){var a=i[o];if(a.prefix===s)return a.namespace!==r}return!0}function rt(t,e,i){t.push(\" \",e,'=\"',i.replace(/[<&\"]/g,M),'\"')}function ot(t,e,i,s,r){if(r||(r=[]),s){if(!(t=s(t)))return;if(\"string\"==typeof t)return void e.push(t)}switch(t.nodeType){case c:var o=t.attributes,a=o.length,h=t.firstChild,l=t.tagName,g=l;if(!(i=n.isHTML(t.namespaceURI)||i)&&!t.prefix&&t.namespaceURI){for(var x,E=0;E<o.length;E++)if(\"xmlns\"===o.item(E).name){x=o.item(E).value;break}if(!x)for(var S=r.length-1;S>=0;S--){if(\"\"===(N=r[S]).prefix&&N.namespace===t.namespaceURI){x=N.namespace;break}}if(x!==t.namespaceURI)for(S=r.length-1;S>=0;S--){var N;if((N=r[S]).namespace===t.namespaceURI){N.prefix&&(g=N.prefix+\":\"+l);break}}}e.push(\"<\",g);for(var _=0;_<a;_++){\"xmlns\"==(T=o.item(_)).prefix?r.push({prefix:T.localName,namespace:T.value}):\"xmlns\"==T.nodeName&&r.push({prefix:\"\",namespace:T.value})}for(_=0;_<a;_++){var T,C,O;if(st(T=o.item(_),0,r))rt(e,(C=T.prefix||\"\")?\"xmlns:\"+C:\"xmlns\",O=T.namespaceURI),r.push({prefix:C,namespace:O});ot(T,e,i,s,r)}if(l===g&&st(t,0,r))rt(e,(C=t.prefix||\"\")?\"xmlns:\"+C:\"xmlns\",O=t.namespaceURI),r.push({prefix:C,namespace:O});if(h||i&&!/^(?:meta|link|img|br|hr|input)$/i.test(l)){if(e.push(\">\"),i&&/^script$/i.test(l))for(;h;)h.data?e.push(h.data):ot(h,e,i,s,r.slice()),h=h.nextSibling;else for(;h;)ot(h,e,i,s,r.slice()),h=h.nextSibling;e.push(\"</\",g,\">\")}else e.push(\"/>\");return;case y:case w:for(h=t.firstChild;h;)ot(h,e,i,s,r.slice()),h=h.nextSibling;return;case u:return rt(e,t.name,t.value);case d:return e.push(t.data.replace(/[<&]/g,M).replace(/]]>/g,\"]]>\"));case f:return e.push(\"<![CDATA[\",t.data,\"]]>\");case v:return e.push(\"\\x3c!--\",t.data,\"--\\x3e\");case b:var I=t.publicId,R=t.systemId;if(e.push(\"<!DOCTYPE \",t.name),I)e.push(\" PUBLIC \",I),R&&\".\"!=R&&e.push(\" \",R),e.push(\">\");else if(R&&\".\"!=R)e.push(\" SYSTEM \",R,\">\");else{var k=t.internalSubset;k&&e.push(\" [\",k,\"]\"),e.push(\">\")}return;case m:return e.push(\"<?\",t.target,\" \",t.data,\"?>\");case p:return e.push(\"&\",t.nodeName,\";\");default:e.push(\"??\",t.nodeName)}}function at(t,e,i){t[e]=i}C.prototype=Error.prototype,a(E,C),O.prototype={length:0,item:function(t){return this[t]||null},toString:function(t,e){for(var i=[],n=0;n<this.length;n++)ot(this[n],i,t,e);return i.join(\"\")}},I.prototype.item=function(t){return R(this),this[t]},h(I,O),k.prototype={length:0,item:O.prototype.item,getNamedItem:function(t){for(var e=this.length;e--;){var i=this[e];if(i.nodeName==t)return i}},setNamedItem:function(t){var e=t.ownerElement;if(e&&e!=this._ownerElement)throw new C(T);var i=this.getNamedItem(t.nodeName);return L(this._ownerElement,this,t,i),i},setNamedItemNS:function(t){var e,i=t.ownerElement;if(i&&i!=this._ownerElement)throw new C(T);return e=this.getNamedItemNS(t.namespaceURI,t.localName),L(this._ownerElement,this,t,e),e},removeNamedItem:function(t){var e=this.getNamedItem(t);return j(this._ownerElement,this,e),e},removeNamedItemNS:function(t,e){var i=this.getNamedItemNS(t,e);return j(this._ownerElement,this,i),i},getNamedItemNS:function(t,e){for(var i=this.length;i--;){var n=this[i];if(n.localName==e&&n.namespaceURI==t)return n}return null}},D.prototype={hasFeature:function(t,e){return!0},createDocument:function(t,e,i){var n=new B;if(n.implementation=this,n.childNodes=new O,n.doctype=i||null,i&&n.appendChild(i),e){var s=n.createElementNS(t,e);n.appendChild(s)}return n},createDocumentType:function(t,e,i){var n=new K;return n.name=t,n.nodeName=t,n.publicId=e||\"\",n.systemId=i||\"\",n}},P.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(t,e){return W(this,t,e)},replaceChild:function(t,e){this.insertBefore(t,e),e&&this.removeChild(e)},removeChild:function(t){return U(this,t)},appendChild:function(t){return this.insertBefore(t,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(t){return function t(e,i,n){var s=new i.constructor;for(var r in i){var o=i[r];\"object\"!=typeof o&&o!=s[r]&&(s[r]=o)}i.childNodes&&(s.childNodes=new O);switch(s.ownerDocument=e,s.nodeType){case c:var a=i.attributes,h=s.attributes=new k,l=a.length;h._ownerElement=s;for(var d=0;d<l;d++)s.setAttributeNode(t(e,a.item(d),!0));break;case u:n=!0}if(n)for(var f=i.firstChild;f;)s.appendChild(t(e,f,n)),f=f.nextSibling;return s}(this.ownerDocument||this,this,t)},normalize:function(){for(var t=this.firstChild;t;){var e=t.nextSibling;e&&e.nodeType==d&&t.nodeType==d?(this.removeChild(e),t.appendData(e.data)):(t.normalize(),t=e)}},isSupported:function(t,e){return this.ownerDocument.implementation.hasFeature(t,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(t){for(var e=this;e;){var i=e._nsMap;if(i)for(var n in i)if(i[n]==t)return n;e=e.nodeType==u?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(t){for(var e=this;e;){var i=e._nsMap;if(i&&t in i)return i[t];e=e.nodeType==u?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(t){return null==this.lookupPrefix(t)}},a(l,P),a(l,P.prototype),B.prototype={nodeName:\"#document\",nodeType:y,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,e){if(t.nodeType==w){for(var i=t.firstChild;i;){var n=i.nextSibling;this.insertBefore(i,e),i=n}return t}return null==this.documentElement&&t.nodeType==c&&(this.documentElement=t),W(this,t,e),t.ownerDocument=this,t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),U(this,t)},importNode:function(t,e){return function t(e,i,n){var s;switch(i.nodeType){case c:(s=i.cloneNode(!1)).ownerDocument=e;case w:break;case u:n=!0}s||(s=i.cloneNode(!1));if(s.ownerDocument=e,s.parentNode=null,n)for(var r=i.firstChild;r;)s.appendChild(t(e,r,n)),r=r.nextSibling;return s}(this,t,e)},getElementById:function(t){var e=null;return z(this.documentElement,(function(i){if(i.nodeType==c&&i.getAttribute(\"id\")==t)return e=i,!0})),e},getElementsByClassName:function(t){var e=o(t);return new I(this,(function(i){var n=[];return e.length>0&&z(i.documentElement,(function(s){if(s!==i&&s.nodeType===c){var r=s.getAttribute(\"class\");if(r){var a=t===r;if(!a){var h=o(r);a=e.every((l=h,function(t){return l&&-1!==l.indexOf(t)}))}a&&n.push(s)}}var l})),n}))},createElement:function(t){var e=new H;return e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.localName=t,e.childNodes=new O,(e.attributes=new k)._ownerElement=e,e},createDocumentFragment:function(){var t=new tt;return t.ownerDocument=this,t.childNodes=new O,t},createTextNode:function(t){var e=new G;return e.ownerDocument=this,e.appendData(t),e},createComment:function(t){var e=new Y;return e.ownerDocument=this,e.appendData(t),e},createCDATASection:function(t){var e=new $;return e.ownerDocument=this,e.appendData(t),e},createProcessingInstruction:function(t,e){var i=new et;return i.ownerDocument=this,i.tagName=i.target=t,i.nodeValue=i.data=e,i},createAttribute:function(t){var e=new V;return e.ownerDocument=this,e.name=t,e.nodeName=t,e.localName=t,e.specified=!0,e},createEntityReference:function(t){var e=new Q;return e.ownerDocument=this,e.nodeName=t,e},createElementNS:function(t,e){var i=new H,n=e.split(\":\"),s=i.attributes=new k;return i.childNodes=new O,i.ownerDocument=this,i.nodeName=e,i.tagName=e,i.namespaceURI=t,2==n.length?(i.prefix=n[0],i.localName=n[1]):i.localName=e,s._ownerElement=i,i},createAttributeNS:function(t,e){var i=new V,n=e.split(\":\");return i.ownerDocument=this,i.nodeName=e,i.name=e,i.namespaceURI=t,i.specified=!0,2==n.length?(i.prefix=n[0],i.localName=n[1]):i.localName=e,i}},h(B,P),H.prototype={nodeType:c,hasAttribute:function(t){return null!=this.getAttributeNode(t)},getAttribute:function(t){var e=this.getAttributeNode(t);return e&&e.value||\"\"},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,e){var i=this.ownerDocument.createAttribute(t);i.value=i.nodeValue=\"\"+e,this.setAttributeNode(i)},removeAttribute:function(t){var e=this.getAttributeNode(t);e&&this.removeAttributeNode(e)},appendChild:function(t){return t.nodeType===w?this.insertBefore(t,null):function(t,e){var i=e.parentNode;if(i){var n=t.lastChild;i.removeChild(e);n=t.lastChild}return n=t.lastChild,e.parentNode=t,e.previousSibling=n,e.nextSibling=null,n?n.nextSibling=e:t.firstChild=e,t.lastChild=e,F(t.ownerDocument,t,e),e}(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,e){var i=this.getAttributeNodeNS(t,e);i&&this.removeAttributeNode(i)},hasAttributeNS:function(t,e){return null!=this.getAttributeNodeNS(t,e)},getAttributeNS:function(t,e){var i=this.getAttributeNodeNS(t,e);return i&&i.value||\"\"},setAttributeNS:function(t,e,i){var n=this.ownerDocument.createAttributeNS(t,e);n.value=n.nodeValue=\"\"+i,this.setAttributeNode(n)},getAttributeNodeNS:function(t,e){return this.attributes.getNamedItemNS(t,e)},getElementsByTagName:function(t){return new I(this,(function(e){var i=[];return z(e,(function(n){n===e||n.nodeType!=c||\"*\"!==t&&n.tagName!=t||i.push(n)})),i}))},getElementsByTagNameNS:function(t,e){return new I(this,(function(i){var n=[];return z(i,(function(s){s===i||s.nodeType!==c||\"*\"!==t&&s.namespaceURI!==t||\"*\"!==e&&s.localName!=e||n.push(s)})),n}))}},B.prototype.getElementsByTagName=H.prototype.getElementsByTagName,B.prototype.getElementsByTagNameNS=H.prototype.getElementsByTagNameNS,h(H,P),V.prototype.nodeType=u,h(V,P),X.prototype={data:\"\",substringData:function(t,e){return this.data.substring(t,t+e)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,e){this.replaceData(t,0,e)},appendChild:function(t){throw new Error(S[N])},deleteData:function(t,e){this.replaceData(t,e,\"\")},replaceData:function(t,e,i){i=this.data.substring(0,t)+i+this.data.substring(t+e),this.nodeValue=this.data=i,this.length=i.length}},h(X,P),G.prototype={nodeName:\"#text\",nodeType:d,splitText:function(t){var e=this.data,i=e.substring(t);e=e.substring(0,t),this.data=this.nodeValue=e,this.length=e.length;var n=this.ownerDocument.createTextNode(i);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n}},h(G,X),Y.prototype={nodeName:\"#comment\",nodeType:v},h(Y,X),$.prototype={nodeName:\"#cdata-section\",nodeType:f},h($,X),K.prototype.nodeType=b,h(K,P),Z.prototype.nodeType=x,h(Z,P),J.prototype.nodeType=g,h(J,P),Q.prototype.nodeType=p,h(Q,P),tt.prototype.nodeName=\"#document-fragment\",tt.prototype.nodeType=w,h(tt,P),et.prototype.nodeType=m,h(et,P),it.prototype.serializeToString=function(t,e,i){return nt.call(t,e,i)},P.prototype.toString=nt;try{if(Object.defineProperty){Object.defineProperty(I.prototype,\"length\",{get:function(){return R(this),this.$$length}}),Object.defineProperty(P.prototype,\"textContent\",{get:function(){return function t(e){switch(e.nodeType){case c:case w:var i=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&i.push(t(e)),e=e.nextSibling;return i.join(\"\");default:return e.nodeValue}}(this)},set:function(t){switch(this.nodeType){case c:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(t||String(t))&&this.appendChild(this.ownerDocument.createTextNode(t));break;default:this.data=t,this.value=t,this.nodeValue=t}}}),at=function(t,e,i){t[\"$$\"+e]=i}}}catch(t){}e.DocumentType=K,e.DOMException=C,e.DOMImplementation=D,e.Element=H,e.Node=P,e.NodeList=O,e.XMLSerializer=it},function(t,e,i){var n=i(52),s=\"object\"==typeof self&&self&&self.Object===Object&&self,r=n||s||Function(\"return this\")();t.exports=r},function(t,e,i){var n=i(26).Symbol;t.exports=n},function(t,e,i){var n=i(21),s=i(19);t.exports=function(t,e,i){var r=!0,o=!0;if(\"function\"!=typeof t)throw new TypeError(\"Expected a function\");return s(i)&&(r=\"leading\"in i?!!i.leading:r,o=\"trailing\"in i?!!i.trailing:o),n(t,e,{leading:r,maxWait:e,trailing:o})}},function(e,i){e.exports=t},function(t,e,i){\"use strict\";i.r(e),function(t){var n=i(24),s=i(16),r=i(2),o=i(12),a=i(0),h=i(1);i(20),i(10),i(22);function l(t,e){return new n.a(t,e)}l.VERSION=h.b,void 0!==t&&(t.EPUBJS_VERSION=h.b),l.Book=n.a,l.Rendition=s.a,l.Contents=o.a,l.CFI=r.a,l.utils=a,e.default=l}.call(this,i(17))},function(t,e,i){\"use strict\";var n=i(32),s=i(40),r=i(41),o=i(42);(t.exports=function(t,e){var i,r,a,h,l;return arguments.length<2||\"string\"!=typeof t?(h=e,e=t,t=null):h=arguments[2],null==t?(i=a=!0,r=!1):(i=o.call(t,\"c\"),r=o.call(t,\"e\"),a=o.call(t,\"w\")),l={value:e,configurable:i,enumerable:r,writable:a},h?n(s(h),l):l}).gs=function(t,e,i){var a,h,l,c;return\"string\"!=typeof t?(l=i,i=e,e=t,t=null):l=arguments[3],null==e?e=void 0:r(e)?null==i?i=void 0:r(i)||(l=i,i=void 0):(l=e,e=i=void 0),null==t?(a=!0,h=!1):(a=o.call(t,\"c\"),h=o.call(t,\"e\")),c={get:e,set:i,configurable:a,enumerable:h},l?n(s(l),c):c}},function(t,e,i){\"use strict\";t.exports=i(33)()?Object.assign:i(34)},function(t,e,i){\"use strict\";t.exports=function(){var t,e=Object.assign;return\"function\"==typeof e&&(e(t={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),t.foo+t.bar+t.trzy===\"razdwatrzy\")}},function(t,e,i){\"use strict\";var n=i(35),s=i(39),r=Math.max;t.exports=function(t,e){var i,o,a,h=r(arguments.length,2);for(t=Object(s(t)),a=function(n){try{t[n]=e[n]}catch(t){i||(i=t)}},o=1;o<h;++o)n(e=arguments[o]).forEach(a);if(void 0!==i)throw i;return t}},function(t,e,i){\"use strict\";t.exports=i(36)()?Object.keys:i(37)},function(t,e,i){\"use strict\";t.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(t){return!1}}},function(t,e,i){\"use strict\";var n=i(18),s=Object.keys;t.exports=function(t){return s(n(t)?Object(t):t)}},function(t,e,i){\"use strict\";t.exports=function(){}},function(t,e,i){\"use strict\";var n=i(18);t.exports=function(t){if(!n(t))throw new TypeError(\"Cannot use null or undefined\");return t}},function(t,e,i){\"use strict\";var n=i(18),s=Array.prototype.forEach,r=Object.create,o=function(t,e){var i;for(i in t)e[i]=t[i]};t.exports=function(t){var e=r(null);return s.call(arguments,(function(t){n(t)&&o(Object(t),e)})),e}},function(t,e,i){\"use strict\";t.exports=function(t){return\"function\"==typeof t}},function(t,e,i){\"use strict\";t.exports=i(43)()?String.prototype.contains:i(44)},function(t,e,i){\"use strict\";var n=\"razdwatrzy\";t.exports=function(){return\"function\"==typeof n.contains&&(!0===n.contains(\"dwa\")&&!1===n.contains(\"foo\"))}},function(t,e,i){\"use strict\";var n=String.prototype.indexOf;t.exports=function(t){return n.call(this,t,arguments[1])>-1}},function(t,e,i){\"use strict\";t.exports=function(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return t}},function(t,e,i){var n=i(14),s=i(25),r=i(47),o=i(48),a=s.DOMImplementation,h=n.NAMESPACE,l=o.ParseError,c=o.XMLReader;function u(t){this.options=t||{locator:{}}}function d(){this.cdata=!1}function f(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}function p(t){if(t)return\"\\n@\"+(t.systemId||\"\")+\"#[line:\"+t.lineNumber+\",col:\"+t.columnNumber+\"]\"}function g(t,e,i){return\"string\"==typeof t?t.substr(e,i):t.length>=e+i||e?new java.lang.String(t,e,i)+\"\":t}function m(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}u.prototype.parseFromString=function(t,e){var i=this.options,n=new c,s=i.domBuilder||new d,o=i.errorHandler,a=i.locator,l=i.xmlns||{},u=/\\/x?html?$/.test(e),f=u?r.HTML_ENTITIES:r.XML_ENTITIES;return a&&s.setDocumentLocator(a),n.errorHandler=function(t,e,i){if(!t){if(e instanceof d)return e;t=e}var n={},s=t instanceof Function;function r(e){var r=t[e];!r&&s&&(r=2==t.length?function(i){t(e,i)}:t),n[e]=r&&function(t){r(\"[xmldom \"+e+\"]\\t\"+t+p(i))}||function(){}}return i=i||{},r(\"warning\"),r(\"error\"),r(\"fatalError\"),n}(o,s,a),n.domBuilder=i.domBuilder||s,u&&(l[\"\"]=h.HTML),l.xml=l.xml||h.XML,t&&\"string\"==typeof t?n.parse(t,l,f):n.errorHandler.error(\"invalid doc source\"),s.doc},d.prototype={startDocument:function(){this.doc=(new a).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,i,n){var s=this.doc,r=s.createElementNS(t,i||e),o=n.length;m(this,r),this.currentElement=r,this.locator&&f(this.locator,r);for(var a=0;a<o;a++){t=n.getURI(a);var h=n.getValue(a),l=(i=n.getQName(a),s.createAttributeNS(t,i));this.locator&&f(n.getLocator(a),l),l.value=l.nodeValue=h,r.setAttributeNode(l)}},endElement:function(t,e,i){var n=this.currentElement;n.tagName;this.currentElement=n.parentNode},startPrefixMapping:function(t,e){},endPrefixMapping:function(t){},processingInstruction:function(t,e){var i=this.doc.createProcessingInstruction(t,e);this.locator&&f(this.locator,i),m(this,i)},ignorableWhitespace:function(t,e,i){},characters:function(t,e,i){if(t=g.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(t);else n=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(n):/^\\s*$/.test(t)&&this.doc.appendChild(n),this.locator&&f(this.locator,n)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,e,i){t=g.apply(this,arguments);var n=this.doc.createComment(t);this.locator&&f(this.locator,n),m(this,n)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,e,i){var n=this.doc.implementation;if(n&&n.createDocumentType){var s=n.createDocumentType(t,e,i);this.locator&&f(this.locator,s),m(this,s),this.doc.doctype=s}},warning:function(t){console.warn(\"[xmldom warning]\\t\"+t,p(this.locator))},error:function(t){console.error(\"[xmldom error]\\t\"+t,p(this.locator))},fatalError:function(t){throw new l(t,this.locator)}},\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,(function(t){d.prototype[t]=function(){return null}})),e.__DOMHandler=d,e.DOMParser=u,e.DOMImplementation=s.DOMImplementation,e.XMLSerializer=s.XMLSerializer},function(t,e,i){var n=i(14).freeze;e.XML_ENTITIES=n({amp:\"&\",apos:\"'\",gt:\">\",lt:\"<\",quot:'\"'}),e.HTML_ENTITIES=n({lt:\"<\",gt:\">\",amp:\"&\",quot:'\"',apos:\"'\",Agrave:\"À\",Aacute:\"Á\",Acirc:\"Â\",Atilde:\"Ã\",Auml:\"Ä\",Aring:\"Å\",AElig:\"Æ\",Ccedil:\"Ç\",Egrave:\"È\",Eacute:\"É\",Ecirc:\"Ê\",Euml:\"Ë\",Igrave:\"Ì\",Iacute:\"Í\",Icirc:\"Î\",Iuml:\"Ï\",ETH:\"Ð\",Ntilde:\"Ñ\",Ograve:\"Ò\",Oacute:\"Ó\",Ocirc:\"Ô\",Otilde:\"Õ\",Ouml:\"Ö\",Oslash:\"Ø\",Ugrave:\"Ù\",Uacute:\"Ú\",Ucirc:\"Û\",Uuml:\"Ü\",Yacute:\"Ý\",THORN:\"Þ\",szlig:\"ß\",agrave:\"à\",aacute:\"á\",acirc:\"â\",atilde:\"ã\",auml:\"ä\",aring:\"å\",aelig:\"æ\",ccedil:\"ç\",egrave:\"è\",eacute:\"é\",ecirc:\"ê\",euml:\"ë\",igrave:\"ì\",iacute:\"í\",icirc:\"î\",iuml:\"ï\",eth:\"ð\",ntilde:\"ñ\",ograve:\"ò\",oacute:\"ó\",ocirc:\"ô\",otilde:\"õ\",ouml:\"ö\",oslash:\"ø\",ugrave:\"ù\",uacute:\"ú\",ucirc:\"û\",uuml:\"ü\",yacute:\"ý\",thorn:\"þ\",yuml:\"ÿ\",nbsp:\" \",iexcl:\"¡\",cent:\"¢\",pound:\"£\",curren:\"¤\",yen:\"¥\",brvbar:\"¦\",sect:\"§\",uml:\"¨\",copy:\"©\",ordf:\"ª\",laquo:\"«\",not:\"¬\",shy:\"\",reg:\"®\",macr:\"¯\",deg:\"°\",plusmn:\"±\",sup2:\"²\",sup3:\"³\",acute:\"´\",micro:\"µ\",para:\"¶\",middot:\"·\",cedil:\"¸\",sup1:\"¹\",ordm:\"º\",raquo:\"»\",frac14:\"¼\",frac12:\"½\",frac34:\"¾\",iquest:\"¿\",times:\"×\",divide:\"÷\",forall:\"∀\",part:\"∂\",exist:\"∃\",empty:\"∅\",nabla:\"∇\",isin:\"∈\",notin:\"∉\",ni:\"∋\",prod:\"∏\",sum:\"∑\",minus:\"−\",lowast:\"∗\",radic:\"√\",prop:\"∝\",infin:\"∞\",ang:\"∠\",and:\"∧\",or:\"∨\",cap:\"∩\",cup:\"∪\",int:\"∫\",there4:\"∴\",sim:\"∼\",cong:\"≅\",asymp:\"≈\",ne:\"≠\",equiv:\"≡\",le:\"≤\",ge:\"≥\",sub:\"⊂\",sup:\"⊃\",nsub:\"⊄\",sube:\"⊆\",supe:\"⊇\",oplus:\"⊕\",otimes:\"⊗\",perp:\"⊥\",sdot:\"⋅\",Alpha:\"Α\",Beta:\"Β\",Gamma:\"Γ\",Delta:\"Δ\",Epsilon:\"Ε\",Zeta:\"Ζ\",Eta:\"Η\",Theta:\"Θ\",Iota:\"Ι\",Kappa:\"Κ\",Lambda:\"Λ\",Mu:\"Μ\",Nu:\"Ν\",Xi:\"Ξ\",Omicron:\"Ο\",Pi:\"Π\",Rho:\"Ρ\",Sigma:\"Σ\",Tau:\"Τ\",Upsilon:\"Υ\",Phi:\"Φ\",Chi:\"Χ\",Psi:\"Ψ\",Omega:\"Ω\",alpha:\"α\",beta:\"β\",gamma:\"γ\",delta:\"δ\",epsilon:\"ε\",zeta:\"ζ\",eta:\"η\",theta:\"θ\",iota:\"ι\",kappa:\"κ\",lambda:\"λ\",mu:\"μ\",nu:\"ν\",xi:\"ξ\",omicron:\"ο\",pi:\"π\",rho:\"ρ\",sigmaf:\"ς\",sigma:\"σ\",tau:\"τ\",upsilon:\"υ\",phi:\"φ\",chi:\"χ\",psi:\"ψ\",omega:\"ω\",thetasym:\"ϑ\",upsih:\"ϒ\",piv:\"ϖ\",OElig:\"Œ\",oelig:\"œ\",Scaron:\"Š\",scaron:\"š\",Yuml:\"Ÿ\",fnof:\"ƒ\",circ:\"ˆ\",tilde:\"˜\",ensp:\" \",emsp:\" \",thinsp:\" \",zwnj:\"\",zwj:\"\",lrm:\"\",rlm:\"\",ndash:\"–\",mdash:\"—\",lsquo:\"‘\",rsquo:\"’\",sbquo:\"‚\",ldquo:\"“\",rdquo:\"”\",bdquo:\"„\",dagger:\"†\",Dagger:\"‡\",bull:\"•\",hellip:\"…\",permil:\"‰\",prime:\"′\",Prime:\"″\",lsaquo:\"‹\",rsaquo:\"›\",oline:\"‾\",euro:\"€\",trade:\"™\",larr:\"←\",uarr:\"↑\",rarr:\"→\",darr:\"↓\",harr:\"↔\",crarr:\"↵\",lceil:\"⌈\",rceil:\"⌉\",lfloor:\"⌊\",rfloor:\"⌋\",loz:\"◊\",spades:\"♠\",clubs:\"♣\",hearts:\"♥\",diams:\"♦\"}),e.entityMap=e.HTML_ENTITIES},function(t,e,i){var n=i(14).NAMESPACE,s=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,r=new RegExp(\"[\\\\-\\\\.0-9\"+s.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\"),o=new RegExp(\"^\"+s.source+r.source+\"*(?::\"+s.source+r.source+\"*)?$\");function a(t,e){this.message=t,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,a)}function h(){}function l(t,e){return e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber,e}function c(t,e,i,s,r,o){function a(t,e,n){i.attributeNames.hasOwnProperty(t)&&o.fatalError(\"Attribute \"+t+\" redefined\"),i.addValue(t,e,n)}for(var h,l=++e,c=0;;){var u=t.charAt(l);switch(u){case\"=\":if(1===c)h=t.slice(e,l),c=3;else{if(2!==c)throw new Error(\"attribute equal must after attrName\");c=3}break;case\"'\":case'\"':if(3===c||1===c){if(1===c&&(o.warning('attribute value must after \"=\"'),h=t.slice(e,l)),e=l+1,!((l=t.indexOf(u,e))>0))throw new Error(\"attribute value no end '\"+u+\"' match\");a(h,d=t.slice(e,l).replace(/&#?\\w+;/g,r),e-1),c=5}else{if(4!=c)throw new Error('attribute value must after \"=\"');a(h,d=t.slice(e,l).replace(/&#?\\w+;/g,r),e),o.warning('attribute \"'+h+'\" missed start quot('+u+\")!!\"),e=l+1,c=5}break;case\"/\":switch(c){case 0:i.setTagName(t.slice(e,l));case 5:case 6:case 7:c=7,i.closed=!0;case 4:case 1:case 2:break;default:throw new Error(\"attribute invalid close char('/')\")}break;case\"\":return o.error(\"unexpected end of input\"),0==c&&i.setTagName(t.slice(e,l)),l;case\">\":switch(c){case 0:i.setTagName(t.slice(e,l));case 5:case 6:case 7:break;case 4:case 1:\"/\"===(d=t.slice(e,l)).slice(-1)&&(i.closed=!0,d=d.slice(0,-1));case 2:2===c&&(d=h),4==c?(o.warning('attribute \"'+d+'\" missed quot(\")!'),a(h,d.replace(/&#?\\w+;/g,r),e)):(n.isHTML(s[\"\"])&&d.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute \"'+d+'\" missed value!! \"'+d+'\" instead!!'),a(d,d,e));break;case 3:throw new Error(\"attribute value missed!!\")}return l;case\"\":u=\" \";default:if(u<=\" \")switch(c){case 0:i.setTagName(t.slice(e,l)),c=6;break;case 1:h=t.slice(e,l),c=2;break;case 4:var d=t.slice(e,l).replace(/&#?\\w+;/g,r);o.warning('attribute \"'+d+'\" missed quot(\")!!'),a(h,d,e);case 5:c=6}else switch(c){case 2:i.tagName;n.isHTML(s[\"\"])&&h.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute \"'+h+'\" missed value!! \"'+h+'\" instead2!!'),a(h,h,e),e=l,c=1;break;case 5:o.warning('attribute space is required\"'+h+'\"!!');case 6:c=1,e=l;break;case 3:c=4,e=l;break;case 7:throw new Error(\"elements closed character '/' and '>' must be connected to\")}}l++}}function u(t,e,i){for(var s=t.tagName,r=null,o=t.length;o--;){var a=t[o],h=a.qName,l=a.value;if((f=h.indexOf(\":\"))>0)var c=a.prefix=h.slice(0,f),u=h.slice(f+1),d=\"xmlns\"===c&&u;else u=h,c=null,d=\"xmlns\"===h&&\"\";a.localName=u,!1!==d&&(null==r&&(r={},p(i,i={})),i[d]=r[d]=l,a.uri=n.XMLNS,e.startPrefixMapping(d,l))}for(o=t.length;o--;){(c=(a=t[o]).prefix)&&(\"xml\"===c&&(a.uri=n.XML),\"xmlns\"!==c&&(a.uri=i[c||\"\"]))}var f;(f=s.indexOf(\":\"))>0?(c=t.prefix=s.slice(0,f),u=t.localName=s.slice(f+1)):(c=null,u=t.localName=s);var g=t.uri=i[c||\"\"];if(e.startElement(g,u,s,t),!t.closed)return t.currentNSMap=i,t.localNSMap=r,!0;if(e.endElement(g,u,s),r)for(c in r)e.endPrefixMapping(c)}function d(t,e,i,n,s){if(/^(?:script|textarea)$/i.test(i)){var r=t.indexOf(\"</\"+i+\">\",e),o=t.substring(e+1,r);if(/[&<]/.test(o))return/^script$/i.test(i)?(s.characters(o,0,o.length),r):(o=o.replace(/&#?\\w+;/g,n),s.characters(o,0,o.length),r)}return e+1}function f(t,e,i,n){var s=n[i];return null==s&&((s=t.lastIndexOf(\"</\"+i+\">\"))<e&&(s=t.lastIndexOf(\"</\"+i)),n[i]=s),s<e}function p(t,e){for(var i in t)e[i]=t[i]}function g(t,e,i,n){switch(t.charAt(e+2)){case\"-\":return\"-\"===t.charAt(e+3)?(s=t.indexOf(\"--\\x3e\",e+4))>e?(i.comment(t,e+4,s-e-4),s+3):(n.error(\"Unclosed comment\"),-1):-1;default:if(\"CDATA[\"==t.substr(e+3,6)){var s=t.indexOf(\"]]>\",e+9);return i.startCDATA(),i.characters(t,e+9,s-e-9),i.endCDATA(),s+3}var r=function(t,e){var i,n=[],s=/'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;s.lastIndex=e,s.exec(t);for(;i=s.exec(t);)if(n.push(i),i[1])return n}(t,e),o=r.length;if(o>1&&/!doctype/i.test(r[0][0])){var a=r[1][0],h=!1,l=!1;o>3&&(/^public$/i.test(r[2][0])?(h=r[3][0],l=o>4&&r[4][0]):/^system$/i.test(r[2][0])&&(l=r[3][0]));var c=r[o-1];return i.startDTD(a,h,l),i.endDTD(),c.index+c[0].length}}return-1}function m(t,e,i){var n=t.indexOf(\"?>\",e);if(n){var s=t.substring(e,n).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(s){s[0].length;return i.processingInstruction(s[1],s[2]),n+2}return-1}return-1}function v(){this.attributeNames={}}a.prototype=new Error,a.prototype.name=a.name,h.prototype={parse:function(t,e,i){var s=this.domBuilder;s.startDocument(),p(e,e={}),function(t,e,i,s,r){function o(t){var e=t.slice(1,-1);return e in i?i[e]:\"#\"===e.charAt(0)?function(t){if(t>65535){var e=55296+((t-=65536)>>10),i=56320+(1023&t);return String.fromCharCode(e,i)}return String.fromCharCode(t)}(parseInt(e.substr(1).replace(\"x\",\"0x\"))):(r.error(\"entity not found:\"+t),t)}function h(e){if(e>N){var i=t.substring(N,e).replace(/&#?\\w+;/g,o);x&&p(N),s.characters(i,0,e-N),N=e}}function p(e,i){for(;e>=b&&(i=w.exec(t));)y=i.index,b=y+i[0].length,x.lineNumber++;x.columnNumber=e-y+1}var y=0,b=0,w=/.*(?:\\r\\n?|\\n)|.*$/g,x=s.locator,E=[{currentNSMap:e}],S={},N=0;for(;;){try{var _=t.indexOf(\"<\",N);if(_<0){if(!t.substr(N).match(/^\\s*$/)){var T=s.doc,C=T.createTextNode(t.substr(N));T.appendChild(C),s.currentElement=C}return}switch(_>N&&h(_),t.charAt(_+1)){case\"/\":var O=t.indexOf(\">\",_+3),I=t.substring(_+2,O).replace(/[ \\t\\n\\r]+$/g,\"\"),R=E.pop();O<0?(I=t.substring(_+2).replace(/[\\s<].*/,\"\"),r.error(\"end tag name: \"+I+\" is not complete:\"+R.tagName),O=_+1+I.length):I.match(/\\s</)&&(I=I.replace(/[\\s<].*/,\"\"),r.error(\"end tag name: \"+I+\" maybe not complete\"),O=_+1+I.length);var k=R.localNSMap,A=R.tagName==I;if(A||R.tagName&&R.tagName.toLowerCase()==I.toLowerCase()){if(s.endElement(R.uri,R.localName,I),k)for(var L in k)s.endPrefixMapping(L);A||r.fatalError(\"end tag name: \"+I+\" is not match the current start tagName:\"+R.tagName)}else E.push(R);O++;break;case\"?\":x&&p(_),O=m(t,_,s);break;case\"!\":x&&p(_),O=g(t,_,s,r);break;default:x&&p(_);var j=new v,D=E[E.length-1].currentNSMap,P=(O=c(t,_,j,D,o,r),j.length);if(!j.closed&&f(t,O,j.tagName,S)&&(j.closed=!0,i.nbsp||r.warning(\"unclosed xml attribute\")),x&&P){for(var M=l(x,{}),z=0;z<P;z++){var B=j[z];p(B.offset),B.locator=l(x,{})}s.locator=M,u(j,s,D)&&E.push(j),s.locator=x}else u(j,s,D)&&E.push(j);n.isHTML(j.uri)&&!j.closed?O=d(t,O,j.tagName,o,s):O++}}catch(t){if(t instanceof a)throw t;r.error(\"element parse error: \"+t),O=-1}O>N?N=O:h(Math.max(_,N)+1)}}(t,e,i,s,this.errorHandler),s.endDocument()}},v.prototype={setTagName:function(t){if(!o.test(t))throw new Error(\"invalid tagName:\"+t);this.tagName=t},addValue:function(t,e,i){if(!o.test(t))throw new Error(\"invalid attribute:\"+t);this.attributeNames[t]=this.length,this[this.length++]={qName:t,value:e,offset:i}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}},e.XMLReader=h,e.ParseError=a},function(t,e,i){\"use strict\";function n(t){return document.createElementNS(\"http://www.w3.org/2000/svg\",t)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.createElement=n,e.default={createElement:n}},function(t,e,i){\"use strict\";function n(t,e){function i(i){for(var n=e.length-1;n>=0;n--){var o=e[n],a=i.clientX,h=i.clientY;if(i.touches&&i.touches.length&&(a=i.touches[0].clientX,h=i.touches[0].clientY),r(o,t,a,h)){o.dispatchEvent(s(i));break}}}if(\"iframe\"===t.nodeName||\"IFRAME\"===t.nodeName)try{this.target=t.contentDocument}catch(e){this.target=t}else this.target=t;for(var n=[\"mouseup\",\"mousedown\",\"click\",\"touchstart\"],o=0;o<n.length;o++){var a=n[o];this.target.addEventListener(a,(function(t){return i(t)}),!1)}}function s(t){var e=Object.assign({},t,{bubbles:!1});try{return new MouseEvent(t.type,e)}catch(n){var i=document.createEvent(\"MouseEvents\");return i.initMouseEvent(t.type,!1,e.cancelable,e.view,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),i}}function r(t,e,i,n){var s=e.getBoundingClientRect();function r(t,e,i){var n=t.top-s.top,r=t.left-s.left,o=n+t.height,a=r+t.width;return n<=i&&r<=e&&o>i&&a>e}if(!r(t.getBoundingClientRect(),i,n))return!1;for(var o=t.getClientRects(),a=0,h=o.length;a<h;a++)if(r(o[a],i,n))return!0;return!1}Object.defineProperty(e,\"__esModule\",{value:!0}),e.proxyMouse=n,e.clone=s,e.default={proxyMouse:n}},function(t,e,i){var n=i(26);t.exports=function(){return n.Date.now()}},function(t,e,i){(function(e){var i=\"object\"==typeof e&&e&&e.Object===Object&&e;t.exports=i}).call(this,i(17))},function(t,e,i){var n=i(54),s=i(19),r=i(56),o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,h=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if(\"number\"==typeof t)return t;if(r(t))return NaN;if(s(t)){var e=\"function\"==typeof t.valueOf?t.valueOf():t;t=s(e)?e+\"\":e}if(\"string\"!=typeof t)return 0===t?t:+t;t=n(t);var i=a.test(t);return i||h.test(t)?l(t.slice(2),i?2:8):o.test(t)?NaN:+t}},function(t,e,i){var n=i(55),s=/^\\s+/;t.exports=function(t){return t?t.slice(0,n(t)+1).replace(s,\"\"):t}},function(t,e){var i=/\\s/;t.exports=function(t){for(var e=t.length;e--&&i.test(t.charAt(e)););return e}},function(t,e,i){var n=i(57),s=i(60);t.exports=function(t){return\"symbol\"==typeof t||s(t)&&\"[object Symbol]\"==n(t)}},function(t,e,i){var n=i(27),s=i(58),r=i(59),o=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":o&&o in Object(t)?s(t):r(t)}},function(t,e,i){var n=i(27),s=Object.prototype,r=s.hasOwnProperty,o=s.toString,a=n?n.toStringTag:void 0;t.exports=function(t){var e=r.call(t,a),i=t[a];try{t[a]=void 0;var n=!0}catch(t){}var s=o.call(t);return n&&(e?t[a]=i:delete t[a]),s}},function(t,e){var i=Object.prototype.toString;t.exports=function(t){return i.call(t)}},function(t,e){t.exports=function(t){return null!=t&&\"object\"==typeof t}}]).default}));\r\n </script>\r\n <script>\r\n(function () {\r\n const viewer = document.getElementById('viewer');\r\n const DEFAULT_FONT_SIZE = 16;\r\n const TEXT_PAGE_CHUNK = 1600;\r\n\r\n let currentType = null;\r\n let book = null;\r\n let rendition = null;\r\n let spineItems = [];\r\n let textPages = [];\r\n let textContainer = null;\r\n let currentPage = 1;\r\n let pageCount = 0;\r\n let zoom = 1.0;\r\n\r\n const sendMessage = (payload) => {\r\n if (window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\r\n window.ReactNativeWebView.postMessage(JSON.stringify(payload));\r\n return;\r\n }\r\n if (window.parent && window.parent !== window) {\r\n window.parent.postMessage(payload, '*');\r\n }\r\n };\r\n\r\n const sendResponse = (id, ok, data, error) => {\r\n sendMessage({ type: 'response', id, ok, data, error });\r\n };\r\n\r\n const sendState = (extra) => {\r\n sendMessage({\r\n type: 'state',\r\n payload: {\r\n pageCount,\r\n currentPage,\r\n zoom,\r\n ...(extra || {}),\r\n },\r\n });\r\n };\r\n\r\n const sendEvent = (name, payload) => {\r\n sendMessage({ type: 'event', name, payload });\r\n };\r\n\r\n const log = (...args) => {\r\n sendEvent('RUNTIME_LOG', { message: args.map((value) => String(value)).join(' ') });\r\n };\r\n\r\n const reportError = (error, context) => {\r\n const message = error && error.message ? error.message : String(error);\r\n const stack = error && error.stack ? error.stack : null;\r\n sendEvent('RUNTIME_ERROR', { message, context, stack });\r\n };\r\n\r\n const withTimeout = async (promise, ms, label) => {\r\n let timer = null;\r\n try {\r\n return await Promise.race([\r\n promise,\r\n new Promise((_, reject) => {\r\n timer = setTimeout(() => reject(new Error(`Timeout: ${label}`)), ms);\r\n }),\r\n ]);\r\n } finally {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n }\r\n };\r\n\r\n const shouldIgnoreError = (error) => {\n const message = error && error.message ? error.message : String(error || '');\n return message.includes('ResizeObserver loop');\n };\n\n window.addEventListener('error', (event) => {\n const error = event.error || event.message;\n if (shouldIgnoreError(error)) return;\n reportError(error, 'window.error');\n });\n\n window.addEventListener('unhandledrejection', (event) => {\n if (shouldIgnoreError(event.reason)) return;\n reportError(event.reason, 'unhandledrejection');\n });\n\r\n const clearViewer = () => {\r\n while (viewer.firstChild) {\r\n viewer.removeChild(viewer.firstChild);\r\n }\r\n };\r\n\r\n const decodeBase64 = (value) => {\r\n const clean = value.replace(/\\s/g, '');\r\n const binary = atob(clean);\r\n const len = binary.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i += 1) {\r\n bytes[i] = binary.charCodeAt(i);\r\n }\r\n return bytes;\r\n };\r\n\r\n const decodeBase64ToText = (value) => {\r\n const bytes = decodeBase64(value);\r\n return new TextDecoder('utf-8').decode(bytes);\r\n };\r\n\r\n const normalizeHref = (href) => {\r\n if (!href) return '';\r\n return href.split('#')[0];\r\n };\r\n\r\n const getSpineIndexByHref = (href) => {\r\n const normalized = normalizeHref(href);\r\n if (!normalized) return -1;\r\n return spineItems.findIndex((item) => normalizeHref(item.href) === normalized);\r\n };\r\n\r\n const buildOutline = async () => {\r\n if (!book || !book.loaded || !book.loaded.navigation) return [];\r\n const nav = await book.loaded.navigation;\r\n const toc = nav && nav.toc ? nav.toc : [];\r\n\r\n const mapItem = (item) => {\r\n const title = item.label || item.title || '';\r\n const pageIndex = getSpineIndexByHref(item.href || '');\r\n const children = Array.isArray(item.subitems) ? item.subitems.map(mapItem) : [];\r\n const outlineItem = { title, pageIndex };\r\n if (children.length > 0) outlineItem.children = children;\r\n return outlineItem;\r\n };\r\n\r\n return toc.map(mapItem);\r\n };\r\n\r\n const applyEpubZoom = () => {\r\n if (!rendition || !rendition.themes) return;\r\n const fontSize = `${Math.round(zoom * 100)}%`;\r\n if (typeof rendition.themes.fontSize === 'function') {\r\n rendition.themes.fontSize(fontSize);\r\n } else if (typeof rendition.themes.override === 'function') {\r\n rendition.themes.override('font-size', fontSize);\r\n }\r\n };\r\n\r\n const applyTextZoom = () => {\r\n if (!textContainer) return;\r\n const fontSize = Math.max(12, Math.round(DEFAULT_FONT_SIZE * zoom));\r\n textContainer.style.fontSize = `${fontSize}px`;\r\n };\r\n\r\n const renderTextPage = (pageIndex) => {\r\n const text = textPages[pageIndex] || '';\r\n if (!textContainer) {\r\n textContainer = document.createElement('div');\r\n textContainer.style.padding = '24px';\r\n textContainer.style.lineHeight = '1.6';\r\n textContainer.style.whiteSpace = 'pre-wrap';\r\n textContainer.style.fontFamily = 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace';\r\n viewer.appendChild(textContainer);\r\n }\r\n textContainer.textContent = text;\r\n applyTextZoom();\r\n };\r\n\r\n const paginateText = (text) => {\r\n const pages = [];\r\n for (let i = 0; i < text.length; i += TEXT_PAGE_CHUNK) {\r\n pages.push(text.slice(i, i + TEXT_PAGE_CHUNK));\r\n }\r\n return pages.length > 0 ? pages : [''];\r\n };\r\n\r\n const loadText = async (source) => {\r\n let text = '';\r\n if (source.kind === 'uri') {\r\n const res = await fetch(source.uri);\r\n text = await res.text();\r\n } else if (source.kind === 'base64') {\r\n text = decodeBase64ToText(source.data);\r\n } else if (source.kind === 'text') {\r\n text = source.text || '';\r\n }\r\n\r\n clearViewer();\r\n textPages = paginateText(text);\r\n pageCount = textPages.length;\r\n currentPage = 1;\r\n textContainer = null;\r\n renderTextPage(0);\r\n return { pageCount };\r\n };\r\n\r\n const loadEpub = async (source) => {\r\n log('epub.load:start', source.kind);\r\n if (rendition && typeof rendition.destroy === 'function') {\r\n rendition.destroy();\r\n }\r\n if (book && typeof book.destroy === 'function') {\r\n book.destroy();\r\n }\r\n\r\n if (source.kind === 'base64') {\r\n book = ePub();\r\n await withTimeout(book.open(source.data, 'base64'), 15000, 'epub.open');\r\n } else {\r\n let data = null;\r\n if (source.kind === 'uri') {\r\n data = source.uri;\r\n } else if (source.kind === 'text') {\r\n const encoder = new TextEncoder();\r\n data = encoder.encode(source.text || '').buffer;\r\n }\r\n const input = data instanceof Uint8Array ? data.buffer : data;\r\n book = ePub(input, { openAs: 'epub' });\r\n }\r\n await withTimeout(book.ready, 15000, 'epub.ready');\r\n log('epub.load:ready');\r\n\r\n spineItems = book.spine && book.spine.items ? book.spine.items : [];\r\n pageCount = spineItems.length;\r\n currentPage = 1;\r\n\r\n clearViewer();\r\n rendition = book.renderTo(viewer, {\r\n width: '100%',\r\n height: '100%',\r\n flow: 'paginated',\r\n spread: 'none',\r\n });\r\n\r\n if (rendition && rendition.hooks && rendition.hooks.content) {\r\n rendition.hooks.content.register((contents) => {\r\n const frame = contents && contents.document ? contents.document.defaultView.frameElement : null;\r\n if (frame) {\r\n frame.setAttribute('sandbox', 'allow-scripts allow-same-origin');\r\n }\r\n });\r\n }\r\n\r\n if (rendition && typeof rendition.on === 'function') {\r\n rendition.on('selected', (cfiRange, contents) => {\r\n const selection = contents && contents.window ? contents.window.getSelection() : null;\r\n const text = selection ? selection.toString().trim() : '';\r\n if (text) {\r\n sendEvent('TEXT_SELECTED', { text, pageIndex: Math.max(0, currentPage - 1) });\r\n }\r\n if (rendition && rendition.annotations && typeof rendition.annotations.remove === 'function') {\r\n rendition.annotations.remove(cfiRange, 'highlight');\r\n }\r\n });\r\n }\r\n\r\n try {\r\n await withTimeout(displayEpubPage(0), 8000, 'epub.display');\r\n log('epub.load:displayed');\r\n } catch (err) {\r\n reportError(err, 'epub.display');\r\n }\r\n applyEpubZoom();\r\n\r\n const outline = await buildOutline();\r\n log('epub.load:outline', outline.length);\r\n return { pageCount, outline };\r\n };\r\n\r\n const displayEpubPage = async (pageIndex) => {\r\n if (!rendition) return;\r\n const item = spineItems[pageIndex];\r\n if (!item) return;\r\n const target = item.href || item.idref || item.cfiBase || pageIndex;\r\n await rendition.display(target);\r\n currentPage = pageIndex + 1;\r\n sendState();\r\n };\r\n\r\n const getTextContent = async (pageIndex) => {\r\n if (currentType === 'text') {\r\n const text = textPages[pageIndex] || '';\r\n return [{\r\n str: text,\r\n dir: 'ltr',\r\n width: 0,\r\n height: 0,\r\n transform: [1, 0, 0, 1, 0, 0],\r\n fontName: 'default',\r\n }];\r\n }\r\n\r\n if (currentType === 'epub') {\r\n if (!book) return [];\r\n const item = spineItems[pageIndex];\r\n if (!item) return [];\r\n try {\r\n const section = book.spine.get(item.idref || item.href);\r\n const text = section && typeof section.text === 'function' ? await section.text() : '';\r\n if (!text) return [];\r\n return [{\r\n str: text,\r\n dir: 'ltr',\r\n width: 0,\r\n height: 0,\r\n transform: [1, 0, 0, 1, 0, 0],\r\n fontName: 'default',\r\n }];\r\n } catch (err) {\r\n return [];\r\n }\r\n }\r\n\r\n return [];\r\n };\r\n\r\n const getPageText = async (pageIndex) => {\r\n const items = await getTextContent(pageIndex);\r\n return items.map((item) => item.str).join(' ');\r\n };\r\n\r\n const searchText = async (query) => {\r\n const normalized = query.toLowerCase();\r\n const results = [];\r\n\r\n for (let i = 0; i < pageCount; i += 1) {\r\n const text = await getPageText(i);\r\n if (!text) continue;\r\n const lower = text.toLowerCase();\r\n let pos = lower.indexOf(normalized, 0);\r\n let matchIndex = 0;\r\n while (pos !== -1) {\r\n const start = Math.max(0, pos - 20);\r\n const end = Math.min(text.length, pos + query.length + 20);\r\n results.push({ pageIndex: i, text: text.substring(start, end), matchIndex });\r\n matchIndex += 1;\r\n pos = lower.indexOf(normalized, pos + 1);\r\n }\r\n }\r\n\r\n return results;\r\n };\r\n\r\n const getPageDimensions = () => ({\r\n width: viewer.clientWidth || 0,\r\n height: viewer.clientHeight || 0,\r\n });\r\n\r\n const getPageIndex = (dest) => {\r\n if (!dest) return null;\r\n if (typeof dest === 'string') return getSpineIndexByHref(dest);\r\n if (typeof dest !== 'object') return null;\r\n if (dest.kind === 'href') return getSpineIndexByHref(dest.value);\r\n if (dest.kind === 'pageIndex') return dest.value;\r\n if (dest.kind === 'pageNumber') return Math.max(0, dest.value - 1);\r\n return null;\r\n };\r\n\r\n const selectText = async (pageIndex) => {\r\n const text = await getPageText(pageIndex);\r\n if (!text) return null;\r\n return {\r\n text,\r\n rects: [{ x: 0, y: 0, width: 1, height: 1 }],\r\n };\r\n };\r\n\r\n const applyZoom = () => {\r\n if (currentType === 'text') {\r\n applyTextZoom();\r\n } else if (currentType === 'epub') {\r\n applyEpubZoom();\r\n }\r\n };\r\n\r\n const handleCommand = async (message) => {\r\n const { id, kind, payload } = message;\r\n log('command', kind);\r\n\r\n try {\r\n if (kind === 'load') {\r\n currentType = payload.type;\r\n zoom = 1.0;\r\n\r\n if (currentType === 'text') {\r\n const result = await loadText(payload.source);\r\n sendState();\r\n sendResponse(id, true, result);\r\n return;\r\n }\r\n\r\n if (currentType === 'epub') {\r\n const result = await loadEpub(payload.source);\r\n sendState({ outline: result.outline || [] });\r\n sendResponse(id, true, result);\r\n return;\r\n }\r\n\r\n throw new Error('Unsupported document type');\r\n }\r\n\r\n if (kind === 'go-to-page') {\r\n const page = Math.max(1, payload.page || 1);\r\n if (currentType === 'text') {\r\n currentPage = page;\r\n renderTextPage(page - 1);\r\n sendState();\r\n } else if (currentType === 'epub') {\r\n await displayEpubPage(page - 1);\r\n }\r\n sendResponse(id, true, { currentPage });\r\n return;\r\n }\r\n\r\n if (kind === 'set-zoom') {\r\n zoom = Math.max(0.5, Math.min(4.0, payload.zoom || 1.0));\r\n applyZoom();\r\n sendState();\r\n sendResponse(id, true, { zoom });\r\n return;\r\n }\r\n\r\n if (kind === 'set-rotation') {\r\n sendResponse(id, true, {});\r\n return;\r\n }\r\n\r\n if (kind === 'get-text-content') {\r\n const items = await getTextContent(payload.pageIndex || 0);\r\n sendResponse(id, true, items);\r\n return;\r\n }\r\n\r\n if (kind === 'get-page-dimensions') {\r\n sendResponse(id, true, getPageDimensions());\r\n return;\r\n }\r\n\r\n if (kind === 'search-text') {\r\n const results = await searchText(payload.query || '');\r\n sendResponse(id, true, results);\r\n return;\r\n }\r\n\r\n if (kind === 'select-text') {\r\n const selection = await selectText(payload.pageIndex || 0);\r\n sendResponse(id, true, selection);\r\n return;\r\n }\r\n\r\n if (kind === 'get-outline') {\r\n const outline = await buildOutline();\r\n sendResponse(id, true, outline);\r\n return;\r\n }\r\n\r\n if (kind === 'get-page-index') {\r\n const index = getPageIndex(payload.dest);\r\n sendResponse(id, true, index);\r\n return;\r\n }\r\n\r\n if (kind === 'destroy') {\r\n clearViewer();\r\n sendResponse(id, true, {});\r\n return;\r\n }\r\n\r\n sendResponse(id, false, null, 'Unknown command');\r\n } catch (err) {\r\n sendResponse(id, false, null, err && err.message ? err.message : String(err));\r\n }\r\n };\r\n\r\n const onMessage = (event) => {\n let message = null;\n const raw = event && typeof event === 'object' ? event.data : null;\n\n if (raw && typeof raw === 'object' && raw.kind && raw.id) {\n message = raw;\n } else if (typeof raw === 'string') {\n if (raw.startsWith('setImmediate$')) {\n return;\n }\n const trimmed = raw.trim();\n if (!trimmed || (!trimmed.startsWith('{') && !trimmed.startsWith('['))) {\n return;\n }\n try {\n message = JSON.parse(trimmed);\n } catch (err) {\n sendEvent('RUNTIME_ERROR', {\r\n message: 'Failed to parse message',\r\n context: 'runtime.onMessage',\r\n stack: err && err.stack ? err.stack : null,\r\n preview: trimmed.slice(0, 200),\r\n });\r\n return;\r\n }\r\n } else {\n return;\n }\n\r\n if (!message || !message.kind || message.id == null) return;\r\n handleCommand(message);\r\n };\r\n\r\n window.addEventListener('message', onMessage);\r\n document.addEventListener('message', onMessage);\r\n\r\n sendMessage({ type: 'ready' });\r\n})();\r\n\r\n </script>\r\n </body>\r\n</html>\r\n\r\n","export { default as Viewer } from './components/Viewer';\nexport { default as PageRenderer } from './components/PageRenderer';\nexport { default as Topbar } from './components/Topbar';\nexport { default as ToolDock } from './components/ToolDock';\nexport { default as RightSheet } from './components/RightSheet';\nexport { default as AnnotationEditor } from './components/AnnotationEditor';\nexport { default as BottomBar } from './components/BottomBar';\nexport { default as SettingsSheet } from './components/SettingsSheet';\nexport { default as CoverPreview } from './components/CoverPreview';\n","import React, { useMemo, useRef, useEffect, useCallback } from 'react';\r\nimport { FlatList, ScrollView, StyleSheet, View, useWindowDimensions, type ViewToken } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\nimport PageRenderer from './PageRenderer';\r\nimport WebViewViewer from './WebViewViewer';\r\n\r\ninterface ViewerProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst Viewer: React.FC<ViewerProps> = ({ engine }) => {\r\n const { pageCount, currentPage, scrollToPageSignal, setDocumentState, uiTheme, viewMode } = useViewerStore();\r\n const listRef = useRef<FlatList<any>>(null);\r\n const isDark = uiTheme === 'dark';\r\n const { width: windowWidth } = useWindowDimensions();\r\n const isDouble = viewMode === 'double';\r\n const isSingle = viewMode === 'single';\r\n const renderTargetType = engine.getRenderTargetType?.() ?? 'canvas';\r\n const isWebView = renderTargetType === 'webview';\r\n\r\n const pages = useMemo(() => Array.from({ length: pageCount }).map((_, i) => i), [pageCount]);\r\n const rows = useMemo(() => {\r\n if (!isDouble) return [];\r\n const result: Array<{ left: number; right: number | null }> = [];\r\n for (let i = 0; i < pageCount; i += 2) {\r\n result.push({ left: i, right: i + 1 < pageCount ? i + 1 : null });\r\n }\r\n return result;\r\n }, [isDouble, pageCount]);\r\n\r\n useEffect(() => {\r\n if (isWebView) {\r\n if (scrollToPageSignal === null) return;\r\n if (pageCount === 0) return;\r\n if (scrollToPageSignal < 0 || scrollToPageSignal >= pageCount) return;\r\n const nextPage = scrollToPageSignal + 1;\r\n engine.goToPage(nextPage);\r\n setDocumentState({ currentPage: nextPage, scrollToPageSignal: null });\r\n return;\r\n }\r\n\r\n if (scrollToPageSignal === null) return;\r\n if (pageCount === 0) return;\r\n if (scrollToPageSignal < 0 || scrollToPageSignal >= pageCount) return;\r\n if (isSingle) {\r\n setDocumentState({ currentPage: scrollToPageSignal + 1, scrollToPageSignal: null });\r\n return;\r\n }\r\n const targetIndex = isDouble ? Math.floor(scrollToPageSignal / 2) : scrollToPageSignal;\r\n listRef.current?.scrollToIndex({ index: targetIndex, animated: true });\r\n setDocumentState({ scrollToPageSignal: null });\r\n }, [scrollToPageSignal, pageCount, setDocumentState, isDouble, isSingle, isWebView, engine]);\r\n\r\n const onViewableItemsChanged = useCallback(\r\n ({ viewableItems }: { viewableItems: Array<ViewToken> }) => {\r\n const first = viewableItems[0];\r\n if (!first) return;\r\n if (isDouble) {\r\n const item = first.item as { left: number; right: number | null } | undefined;\r\n if (!item) return;\r\n const page = item.left + 1;\r\n if (page !== currentPage) {\r\n setDocumentState({ currentPage: page });\r\n }\r\n return;\r\n }\r\n\r\n if (first.index !== null && first.index !== undefined) {\r\n const page = first.index + 1;\r\n if (page !== currentPage) {\r\n setDocumentState({ currentPage: page });\r\n }\r\n }\r\n },\r\n [currentPage, isDouble, setDocumentState]\r\n );\r\n\r\n if (isWebView) {\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <WebViewViewer engine={engine} />\r\n </View>\r\n );\r\n }\r\n\r\n if (isSingle) {\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <ScrollView\r\n contentContainerStyle={styles.singleContent}\r\n showsVerticalScrollIndicator={false}\r\n scrollEnabled\r\n >\r\n <PageRenderer engine={engine} pageIndex={Math.max(0, currentPage - 1)} spacing={32} />\r\n </ScrollView>\r\n </View>\r\n );\r\n }\r\n\r\n const columnGap = 12;\r\n const horizontalPadding = 16;\r\n const columnWidth = isDouble\r\n ? (windowWidth - horizontalPadding * 2 - columnGap) / 2\r\n : windowWidth;\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <FlatList\r\n ref={listRef}\r\n data={isDouble ? rows : pages}\r\n keyExtractor={(item) => (isDouble ? `row-${item.left}` : `page-${item}`)}\r\n contentContainerStyle={styles.listContent}\r\n renderItem={({ item }) =>\r\n isDouble ? (\r\n <View style={[styles.row, { paddingHorizontal: horizontalPadding }]}>\r\n <View style={{ width: columnWidth }}>\r\n <PageRenderer\r\n engine={engine}\r\n pageIndex={item.left}\r\n availableWidth={columnWidth}\r\n horizontalPadding={8}\r\n spacing={20}\r\n />\r\n </View>\r\n {item.right !== null ? (\r\n <View style={{ width: columnWidth }}>\r\n <PageRenderer\r\n engine={engine}\r\n pageIndex={item.right}\r\n availableWidth={columnWidth}\r\n horizontalPadding={8}\r\n spacing={20}\r\n />\r\n </View>\r\n ) : (\r\n <View style={{ width: columnWidth }} />\r\n )}\r\n </View>\r\n ) : (\r\n <PageRenderer engine={engine} pageIndex={item} spacing={28} />\r\n )\r\n }\r\n onViewableItemsChanged={onViewableItemsChanged}\r\n viewabilityConfig={{ itemVisiblePercentThreshold: 60 }}\r\n scrollEnabled\r\n onScrollToIndexFailed={({ index, averageItemLength }) => {\r\n if (index < 0 || index >= pageCount) return;\r\n const offset = Math.max(0, averageItemLength * index);\r\n listRef.current?.scrollToOffset({ offset, animated: true });\r\n }}\r\n showsVerticalScrollIndicator={false}\r\n />\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n backgroundColor: '#e9ecef',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n },\r\n listContent: {\r\n paddingTop: 18,\r\n paddingBottom: 120,\r\n },\r\n singleContent: {\r\n paddingTop: 18,\r\n paddingBottom: 140,\r\n },\r\n row: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n },\r\n});\r\n\r\nexport default Viewer;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport {\r\n View,\r\n StyleSheet,\r\n Pressable,\r\n ScrollView,\r\n PanResponder,\r\n Platform,\r\n findNodeHandle,\r\n useWindowDimensions,\r\n type LayoutChangeEvent,\r\n type GestureResponderEvent,\r\n} from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { Annotation, DocumentEngine, TextSelection } from '@papyrus-sdk/types';\r\nimport { PapyrusPageView, type PapyrusPageViewProps } from '@papyrus-sdk/engine-native';\r\n\r\ntype PageViewComponentType = React.ComponentType<PapyrusPageViewProps & React.RefAttributes<any>>;\r\n\r\ninterface PageRendererProps {\r\n engine: DocumentEngine;\r\n pageIndex: number;\r\n scale?: number;\r\n PageViewComponent?: PageViewComponentType;\r\n availableWidth?: number;\r\n horizontalPadding?: number;\r\n spacing?: number;\r\n}\r\n\r\nconst PageRenderer: React.FC<PageRendererProps> = ({\r\n engine,\r\n pageIndex,\r\n scale = 1,\r\n PageViewComponent = PapyrusPageView as PageViewComponentType,\r\n availableWidth,\r\n horizontalPadding = 16,\r\n spacing = 24,\r\n}) => {\r\n const viewRef = useRef<any>(null);\r\n const [layout, setLayout] = useState({ width: 0, height: 0 });\r\n const [pageSize, setPageSize] = useState<{ width: number; height: number } | null>(null);\r\n const { width: windowWidth } = useWindowDimensions();\r\n const isAndroid = Platform.OS === 'android';\r\n const isNative = Platform.OS === 'android' || Platform.OS === 'ios';\r\n\r\n const {\r\n zoom,\r\n rotation,\r\n pageTheme,\r\n annotations,\r\n annotationColor,\r\n addAnnotation,\r\n setDocumentState,\r\n accentColor,\r\n selectedAnnotationId,\r\n setSelectedAnnotation,\r\n removeAnnotation,\r\n searchResults,\r\n activeSearchIndex,\r\n setSelectionActive,\r\n } = useViewerStore();\r\n\r\n const pageAnnotations = useMemo(\r\n () => annotations.filter((ann) => ann.pageIndex === pageIndex),\r\n [annotations, pageIndex]\r\n );\r\n\r\n const pageSearchHits = useMemo(\r\n () =>\r\n searchResults\r\n .map((result, index) => ({ result, index }))\r\n .filter(({ result }) => result.pageIndex === pageIndex),\r\n [searchResults, pageIndex]\r\n );\r\n\r\n const [selectionRect, setSelectionRect] = useState<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const [selectionRects, setSelectionRects] = useState<Array<{ x: number; y: number; width: number; height: number }>>([]);\r\n const [selectionBounds, setSelectionBounds] = useState<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const [selectionText, setSelectionText] = useState('');\r\n const [isSelecting, setIsSelecting] = useState(false);\r\n const selectionStart = useRef<{ x: number; y: number } | null>(null);\r\n const selectionRectRef = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const selectionBoundsRef = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const selectionBoundsStart = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const lastTapRef = useRef<{ time: number; x: number; y: number } | null>(null);\r\n const pinchRef = useRef<{ distance: number; zoom: number } | null>(null);\r\n\r\n useEffect(() => {\r\n if (!layout.width || !layout.height) return;\r\n const viewTag = findNodeHandle(viewRef.current);\r\n if (viewTag) {\r\n const renderScale = isNative ? scale / Math.max(zoom, 0.5) : scale;\r\n void engine.renderPage(pageIndex, viewTag, renderScale);\r\n }\r\n }, [engine, pageIndex, scale, zoom, rotation, layout.width, layout.height, isNative]);\r\n\r\n useEffect(() => {\r\n let active = true;\r\n const loadDimensions = async () => {\r\n const dims = await engine.getPageDimensions(pageIndex);\r\n if (!active) return;\r\n if (dims.width > 0 && dims.height > 0) {\r\n setPageSize({ width: dims.width, height: dims.height });\r\n }\r\n };\r\n void loadDimensions();\r\n return () => {\r\n active = false;\r\n };\r\n }, [engine, pageIndex]);\r\n\r\n const handleLayout = (event: LayoutChangeEvent) => {\r\n const { width, height } = event.nativeEvent.layout;\r\n if (width !== layout.width || height !== layout.height) {\r\n setLayout({ width, height });\r\n }\r\n };\r\n\r\n const addAnnotationAt = (x: number, y: number, width: number, height: number, type: Annotation['type']) => {\r\n addAnnotation({\r\n id: Math.random().toString(36).slice(2, 9),\r\n pageIndex,\r\n type,\r\n rect: { x, y, width, height },\r\n color: annotationColor,\r\n content: type === 'text' || type === 'comment' ? '' : undefined,\r\n createdAt: Date.now(),\r\n });\r\n };\r\n\r\n const clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value));\r\n\r\n const getBoundsFromRects = (rects: Array<{ x: number; y: number; width: number; height: number }>) => {\r\n let minX = 1;\r\n let minY = 1;\r\n let maxX = 0;\r\n let maxY = 0;\r\n rects.forEach((rect) => {\r\n minX = Math.min(minX, rect.x);\r\n minY = Math.min(minY, rect.y);\r\n maxX = Math.max(maxX, rect.x + rect.width);\r\n maxY = Math.max(maxY, rect.y + rect.height);\r\n });\r\n if (maxX <= minX || maxY <= minY) return null;\r\n return {\r\n x: clamp(minX, 0, 1),\r\n y: clamp(minY, 0, 1),\r\n width: clamp(maxX - minX, 0, 1),\r\n height: clamp(maxY - minY, 0, 1),\r\n };\r\n };\r\n\r\n const clearSelection = () => {\r\n setSelectionRect(null);\r\n selectionRectRef.current = null;\r\n setSelectionRects([]);\r\n setSelectionBounds(null);\r\n selectionBoundsRef.current = null;\r\n setSelectionText('');\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n selectionBoundsStart.current = null;\r\n setSelectionActive(false);\r\n };\r\n\r\n const applySelectionResult = (selection: TextSelection | null) => {\r\n if (!selection || !selection.rects || selection.rects.length === 0) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectionRects(selection.rects);\r\n setSelectionText(selection.text || '');\r\n const bounds = getBoundsFromRects(selection.rects);\r\n if (!bounds) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectionBounds(bounds);\r\n selectionBoundsRef.current = bounds;\r\n setSelectionActive(true);\r\n };\r\n\r\n const selectFromBounds = async (bounds: { x: number; y: number; width: number; height: number }) => {\r\n const selection = await engine.selectText?.(pageIndex, bounds);\r\n applySelectionResult(selection ?? null);\r\n };\r\n\r\n const selectAtPoint = async (x: number, y: number) => {\r\n if (!layout.width || !layout.height) return;\r\n const size = 26;\r\n const half = size / 2;\r\n const left = clamp(x - half, 0, Math.max(0, layout.width - size));\r\n const top = clamp(y - half, 0, Math.max(0, layout.height - size));\r\n const bounds = {\r\n x: left / layout.width,\r\n y: top / layout.height,\r\n width: size / layout.width,\r\n height: size / layout.height,\r\n };\r\n await selectFromBounds(bounds);\r\n };\r\n\r\n const getTouchDistance = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (touches.length < 2) return 0;\r\n const [a, b] = touches;\r\n return Math.hypot(b.pageX - a.pageX, b.pageY - a.pageY);\r\n };\r\n\r\n const shouldHandlePinch = (touches: Array<{ pageX: number; pageY: number }>) => isNative && touches.length === 2;\r\n\r\n const handlePinchStart = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (!shouldHandlePinch(touches)) return;\r\n pinchRef.current = { distance: getTouchDistance(touches), zoom };\r\n };\r\n\r\n const handlePinchMove = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (!shouldHandlePinch(touches) || !pinchRef.current) return;\r\n const distance = getTouchDistance(touches);\r\n if (!distance) return;\r\n const scale = distance / pinchRef.current.distance;\r\n const nextZoom = clamp(pinchRef.current.zoom * scale, 0.5, 4.0);\r\n setDocumentState({ zoom: nextZoom });\r\n engine.setZoom(nextZoom);\r\n };\r\n\r\n const handlePinchEnd = () => {\r\n pinchRef.current = null;\r\n };\r\n\r\n const handlePress = (event: GestureResponderEvent) => {\r\n if (!layout.width || !layout.height) return;\r\n if (selectionRects.length > 0 || selectionBounds) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectedAnnotation(null);\r\n if (!isNative) return;\r\n\r\n const { locationX, locationY } = event.nativeEvent;\r\n const now = Date.now();\r\n const lastTap = lastTapRef.current;\r\n lastTapRef.current = { time: now, x: locationX, y: locationY };\r\n\r\n if (!lastTap) return;\r\n const timeDelta = now - lastTap.time;\r\n const distance = Math.hypot(locationX - lastTap.x, locationY - lastTap.y);\r\n if (timeDelta < 280 && distance < 24) {\r\n void selectAtPoint(locationX, locationY);\r\n }\r\n };\r\n\r\n const selectionEnabled = Platform.OS === 'web';\r\n void selectionText;\r\n\r\n const panResponder = useMemo(\r\n () =>\r\n PanResponder.create({\r\n onStartShouldSetPanResponder: () => selectionEnabled,\r\n onMoveShouldSetPanResponder: () => selectionEnabled,\r\n onPanResponderGrant: (event) => {\r\n if (!selectionEnabled || !layout.width || !layout.height) return;\r\n const { locationX, locationY } = event.nativeEvent;\r\n selectionStart.current = { x: locationX, y: locationY };\r\n setIsSelecting(true);\r\n const rect = { x: locationX, y: locationY, width: 0, height: 0 };\r\n selectionRectRef.current = rect;\r\n setSelectionRect(rect);\r\n },\r\n onPanResponderMove: (_, gestureState) => {\r\n if (!selectionEnabled || !selectionStart.current) return;\r\n const start = selectionStart.current;\r\n const currentX = start.x + gestureState.dx;\r\n const currentY = start.y + gestureState.dy;\r\n const left = Math.max(0, Math.min(start.x, currentX));\r\n const top = Math.max(0, Math.min(start.y, currentY));\r\n const right = Math.min(layout.width, Math.max(start.x, currentX));\r\n const bottom = Math.min(layout.height, Math.max(start.y, currentY));\r\n const rect = { x: left, y: top, width: right - left, height: bottom - top };\r\n selectionRectRef.current = rect;\r\n setSelectionRect(rect);\r\n },\r\n onPanResponderRelease: async () => {\r\n const rect = selectionRectRef.current;\r\n if (!selectionEnabled || !rect || !layout.width || !layout.height) {\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n return;\r\n }\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n\r\n const minSize = 6;\r\n if (rect.width < minSize || rect.height < minSize) {\r\n clearSelection();\r\n return;\r\n }\r\n\r\n const normalized = {\r\n x: rect.x / layout.width,\r\n y: rect.y / layout.height,\r\n width: rect.width / layout.width,\r\n height: rect.height / layout.height,\r\n };\r\n\r\n await selectFromBounds(normalized);\r\n setSelectionRect(null);\r\n },\r\n }),\r\n [selectionEnabled, layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const selectionBoundsPx = useMemo(() => {\r\n if (!selectionBounds || !layout.width || !layout.height) return null;\r\n return {\r\n x: selectionBounds.x * layout.width,\r\n y: selectionBounds.y * layout.height,\r\n width: selectionBounds.width * layout.width,\r\n height: selectionBounds.height * layout.height,\r\n };\r\n }, [selectionBounds, layout.width, layout.height]);\r\n\r\n const createHandleResponder = (handle: 'start' | 'end') =>\r\n PanResponder.create({\r\n onStartShouldSetPanResponder: () => true,\r\n onMoveShouldSetPanResponder: () => true,\r\n onPanResponderGrant: () => {\r\n selectionBoundsStart.current = selectionBoundsRef.current;\r\n },\r\n onPanResponderMove: (_, gestureState) => {\r\n const start = selectionBoundsStart.current;\r\n if (!start || !layout.width || !layout.height) return;\r\n const dx = gestureState.dx / layout.width;\r\n const dy = gestureState.dy / layout.height;\r\n const minSize = 0.01;\r\n let next = { ...start };\r\n\r\n if (handle === 'start') {\r\n const newX = clamp(start.x + dx, 0, start.x + start.width - minSize);\r\n const newY = clamp(start.y + dy, 0, start.y + start.height - minSize);\r\n next = {\r\n x: newX,\r\n y: newY,\r\n width: start.x + start.width - newX,\r\n height: start.y + start.height - newY,\r\n };\r\n } else {\r\n const maxX = clamp(start.x + start.width + dx, start.x + minSize, 1);\r\n const maxY = clamp(start.y + start.height + dy, start.y + minSize, 1);\r\n next = {\r\n x: start.x,\r\n y: start.y,\r\n width: maxX - start.x,\r\n height: maxY - start.y,\r\n };\r\n }\r\n\r\n selectionBoundsRef.current = next;\r\n setSelectionBounds(next);\r\n },\r\n onPanResponderRelease: async () => {\r\n const next = selectionBoundsRef.current;\r\n selectionBoundsStart.current = null;\r\n if (!next) return;\r\n await selectFromBounds(next);\r\n },\r\n onPanResponderTerminate: () => {\r\n selectionBoundsStart.current = null;\r\n },\r\n });\r\n\r\n const startHandleResponder = useMemo(\r\n () => createHandleResponder('start'),\r\n [layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const endHandleResponder = useMemo(\r\n () => createHandleResponder('end'),\r\n [layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const applySelection = (type: 'highlight' | 'strikeout' | 'comment') => {\r\n if (selectionRects.length === 0) return;\r\n\r\n if (type === 'comment') {\r\n const first = selectionRects[0];\r\n addAnnotationAt(first.x, first.y, Math.max(0.08, first.width), Math.max(0.06, first.height), 'comment');\r\n clearSelection();\r\n return;\r\n }\r\n\r\n selectionRects.forEach((rect) => {\r\n addAnnotationAt(rect.x, rect.y, rect.width, rect.height, type);\r\n });\r\n clearSelection();\r\n };\r\n\r\n const themeOverlayStyle = useMemo(() => {\r\n switch (pageTheme) {\r\n case 'sepia':\r\n return styles.themeSepia;\r\n case 'dark':\r\n return styles.themeDark;\r\n case 'high-contrast':\r\n return styles.themeContrast;\r\n default:\r\n return styles.themeNone;\r\n }\r\n }, [pageTheme]);\r\n\r\n const aspectRatio =\r\n pageSize && pageSize.width > 0 && pageSize.height > 0 ? pageSize.width / pageSize.height : 0.77;\r\n const containerWidth = availableWidth ?? windowWidth;\r\n const baseWidth = containerWidth * 0.92;\r\n const pageWidth = isNative ? baseWidth * zoom : baseWidth;\r\n const pageHeight = pageWidth / aspectRatio;\r\n const hasActiveSelection = selectionRects.length > 0 || !!selectionBounds || isSelecting;\r\n const scrollEnabled = isNative && zoom > 1 && !hasActiveSelection;\r\n\r\n return (\r\n <ScrollView\r\n horizontal\r\n scrollEnabled={scrollEnabled}\r\n showsHorizontalScrollIndicator={false}\r\n contentContainerStyle={[styles.scrollContent, { paddingHorizontal: horizontalPadding }]}\r\n >\r\n <Pressable\r\n {...panResponder.panHandlers}\r\n style={[styles.container, { width: pageWidth, height: pageHeight, marginBottom: spacing }]}\r\n onLayout={handleLayout}\r\n onPress={handlePress}\r\n onStartShouldSetResponder={(event) => shouldHandlePinch(event.nativeEvent.touches)}\r\n onMoveShouldSetResponder={(event) => shouldHandlePinch(event.nativeEvent.touches)}\r\n onResponderGrant={(event) => handlePinchStart(event.nativeEvent.touches)}\r\n onResponderMove={(event) => handlePinchMove(event.nativeEvent.touches)}\r\n onResponderRelease={handlePinchEnd}\r\n onResponderTerminate={handlePinchEnd}\r\n >\r\n <PageViewComponent ref={viewRef} style={styles.page} />\r\n <View pointerEvents=\"none\" style={[styles.themeOverlay, themeOverlayStyle]} />\r\n <View pointerEvents=\"box-none\" style={styles.selectionLayer}>\r\n <View pointerEvents=\"none\">\r\n {selectionRects.map((rect, index) => {\r\n const style = {\r\n left: `${rect.x * 100}%`,\r\n top: `${rect.y * 100}%`,\r\n width: `${rect.width * 100}%`,\r\n height: `${rect.height * 100}%`,\r\n } as const;\r\n return <View key={`sel-${index}`} style={[styles.selectionHighlight, style]} />;\r\n })}\r\n </View>\r\n {selectionBoundsPx ? (\r\n <View\r\n pointerEvents=\"box-none\"\r\n style={[\r\n styles.selectionOutline,\r\n {\r\n left: selectionBoundsPx.x,\r\n top: selectionBoundsPx.y,\r\n width: selectionBoundsPx.width,\r\n height: selectionBoundsPx.height,\r\n borderColor: accentColor,\r\n },\r\n ]}\r\n >\r\n <View\r\n {...startHandleResponder.panHandlers}\r\n style={[styles.selectionHandle, { left: -8, top: -8, borderColor: accentColor }]}\r\n />\r\n <View\r\n {...endHandleResponder.panHandlers}\r\n style={[styles.selectionHandle, { right: -8, bottom: -8, borderColor: accentColor }]}\r\n />\r\n </View>\r\n ) : null}\r\n {isSelecting && selectionRect ? (\r\n <View\r\n pointerEvents=\"none\"\r\n style={[\r\n styles.selectionOutline,\r\n {\r\n left: selectionRect.x,\r\n top: selectionRect.y,\r\n width: selectionRect.width,\r\n height: selectionRect.height,\r\n borderColor: accentColor,\r\n },\r\n ]}\r\n />\r\n ) : null}\r\n </View>\r\n <View pointerEvents=\"none\" style={styles.searchLayer}>\r\n {pageSearchHits.map(({ result, index }) => {\r\n if (!result.rects || result.rects.length === 0) return null;\r\n return result.rects.map((rect, rectIndex) => {\r\n if (rect.width <= 0 || rect.height <= 0) return null;\r\n const isActive = index === activeSearchIndex;\r\n const highlightStyle = {\r\n left: `${rect.x * 100}%`,\r\n top: `${rect.y * 100}%`,\r\n width: `${rect.width * 100}%`,\r\n height: `${rect.height * 100}%`,\r\n } as const;\r\n return (\r\n <View\r\n key={`${index}-${rectIndex}`}\r\n style={[\r\n styles.searchHighlight,\r\n { borderColor: accentColor, backgroundColor: `${accentColor}26` },\r\n isActive && styles.searchHighlightActive,\r\n isActive && { borderColor: accentColor, backgroundColor: `${accentColor}40` },\r\n highlightStyle,\r\n ]}\r\n />\r\n );\r\n });\r\n })}\r\n </View>\r\n <View pointerEvents=\"box-none\" style={styles.annotationLayer}>\r\n {pageAnnotations.map((ann) => {\r\n const isSelected = selectedAnnotationId === ann.id;\r\n const style = {\r\n left: `${ann.rect.x * 100}%`,\r\n top: `${ann.rect.y * 100}%`,\r\n width: `${ann.rect.width * 100}%`,\r\n height: `${ann.rect.height * 100}%`,\r\n backgroundColor: ann.type === 'highlight' ? `${ann.color}66` : 'transparent',\r\n borderBottomWidth: ann.type === 'strikeout' ? 3 : 0,\r\n borderBottomColor: ann.type === 'strikeout' ? ann.color : 'transparent',\r\n } as const;\r\n\r\n return (\r\n <Pressable\r\n key={ann.id}\r\n onPress={() => setSelectedAnnotation(ann.id)}\r\n style={[\r\n styles.annotation,\r\n style,\r\n isSelected && styles.annotationSelected,\r\n isSelected && { borderColor: accentColor },\r\n ]}\r\n >\r\n {(ann.type === 'comment' || ann.type === 'text') && (\r\n <View style={[styles.annotationBadge, { borderColor: ann.color }]}>\r\n <View style={[styles.annotationDot, { backgroundColor: ann.color }]} />\r\n </View>\r\n )}\r\n {isSelected && (\r\n <Pressable onPress={() => removeAnnotation(ann.id)} style={styles.deleteButton}>\r\n <View style={styles.deleteDot} />\r\n </Pressable>\r\n )}\r\n </Pressable>\r\n );\r\n })}\r\n </View>\r\n {selectionRects.length > 0 && selectionBoundsPx ? (\r\n <View\r\n pointerEvents=\"box-none\"\r\n style={[\r\n styles.selectionToolbar,\r\n {\r\n left: selectionBoundsPx.x,\r\n top:\r\n selectionBoundsPx.y + selectionBoundsPx.height + 8 > layout.height - 56\r\n ? Math.max(8, selectionBoundsPx.y - 52)\r\n : selectionBoundsPx.y + selectionBoundsPx.height + 8,\r\n },\r\n ]}\r\n >\r\n <Pressable onPress={() => applySelection('comment')} style={styles.selectionAction}>\r\n <View style={styles.selectionActionDot} />\r\n </Pressable>\r\n <Pressable onPress={() => applySelection('highlight')} style={styles.selectionAction}>\r\n <View style={[styles.selectionSwatch, { backgroundColor: annotationColor }]} />\r\n </Pressable>\r\n <Pressable onPress={() => applySelection('strikeout')} style={[styles.selectionAction, styles.selectionActionLast]}>\r\n <View style={[styles.selectionStrike, { backgroundColor: annotationColor }]} />\r\n </Pressable>\r\n </View>\r\n ) : null}\r\n </Pressable>\r\n </ScrollView>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n scrollContent: {\r\n alignItems: 'center',\r\n },\r\n container: {\r\n alignSelf: 'center',\r\n borderRadius: 14,\r\n backgroundColor: '#ffffff',\r\n shadowColor: '#000000',\r\n shadowOpacity: 0.12,\r\n shadowRadius: 12,\r\n shadowOffset: { width: 0, height: 6 },\r\n elevation: 4,\r\n },\r\n page: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: '#ffffff',\r\n borderRadius: 14,\r\n overflow: 'hidden',\r\n },\r\n annotationLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n searchLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n selectionLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n selectionHighlight: {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(245, 158, 11, 0.28)',\r\n borderRadius: 4,\r\n },\r\n selectionOutline: {\r\n position: 'absolute',\r\n borderWidth: 2,\r\n borderStyle: 'dashed',\r\n borderColor: 'rgba(37, 99, 235, 0.9)',\r\n borderRadius: 6,\r\n },\r\n selectionHandle: {\r\n position: 'absolute',\r\n width: 16,\r\n height: 16,\r\n borderRadius: 8,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 2,\r\n borderColor: '#2563eb',\r\n },\r\n searchHighlight: {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(59, 130, 246, 0.2)',\r\n borderWidth: 1,\r\n borderColor: 'rgba(59, 130, 246, 0.35)',\r\n borderRadius: 4,\r\n },\r\n searchHighlightActive: {\r\n backgroundColor: 'rgba(59, 130, 246, 0.35)',\r\n borderColor: '#3b82f6',\r\n },\r\n themeOverlay: {\r\n ...StyleSheet.absoluteFillObject,\r\n borderRadius: 14,\r\n },\r\n themeNone: {\r\n backgroundColor: 'transparent',\r\n },\r\n themeSepia: {\r\n backgroundColor: 'rgba(244, 236, 216, 0.35)',\r\n },\r\n themeDark: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n themeContrast: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.35)',\r\n },\r\n annotation: {\r\n position: 'absolute',\r\n },\r\n annotationSelected: {\r\n borderWidth: 1,\r\n borderColor: '#3b82f6',\r\n },\r\n annotationBadge: {\r\n position: 'absolute',\r\n left: 4,\r\n top: 4,\r\n width: 14,\r\n height: 14,\r\n borderRadius: 7,\r\n borderWidth: 1,\r\n backgroundColor: '#ffffff',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n annotationDot: {\r\n width: 6,\r\n height: 6,\r\n borderRadius: 3,\r\n },\r\n deleteButton: {\r\n position: 'absolute',\r\n right: -8,\r\n top: -8,\r\n width: 20,\r\n height: 20,\r\n borderRadius: 10,\r\n backgroundColor: '#ef4444',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n deleteDot: {\r\n width: 8,\r\n height: 2,\r\n backgroundColor: '#ffffff',\r\n borderRadius: 2,\r\n },\r\n selectionToolbar: {\r\n position: 'absolute',\r\n paddingHorizontal: 10,\r\n paddingVertical: 8,\r\n borderRadius: 14,\r\n backgroundColor: '#111827',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n selectionAction: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#1f2937',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginRight: 10,\r\n },\r\n selectionActionLast: {\r\n marginRight: 0,\r\n },\r\n selectionActionDot: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: 4,\r\n backgroundColor: '#f9fafb',\r\n },\r\n selectionSwatch: {\r\n width: 14,\r\n height: 14,\r\n borderRadius: 7,\r\n borderWidth: 1,\r\n borderColor: '#ffffff',\r\n },\r\n selectionStrike: {\r\n width: 14,\r\n height: 3,\r\n borderRadius: 3,\r\n },\r\n});\r\n\r\nexport default PageRenderer;\r\n","import React, { useEffect, useMemo, useRef } from 'react';\r\nimport { Image, StyleSheet, View } from 'react-native';\r\nimport WebView, { type WebViewMessageEvent, type WebViewErrorEvent } from 'react-native-webview';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\n\r\nconst runtimeAsset = require('../runtime/index.html');\r\nconst runtimeSource = (() => {\r\n if (typeof runtimeAsset === 'string') {\r\n return { html: runtimeAsset };\r\n }\r\n if (typeof runtimeAsset === 'number') {\r\n const resolved = Image.resolveAssetSource(runtimeAsset);\r\n if (resolved?.uri) {\r\n return { uri: resolved.uri };\r\n }\r\n }\r\n if (runtimeAsset && typeof runtimeAsset === 'object' && 'uri' in runtimeAsset) {\r\n const uri = (runtimeAsset as { uri?: string }).uri;\r\n if (uri) return { uri };\r\n }\r\n return { html: '' };\r\n})();\r\n\r\ntype WebViewBridge = {\r\n postMessage: (message: string) => void;\r\n};\r\n\r\ntype WebViewBridgeEngine = DocumentEngine & {\r\n attachWebView?: (bridge: WebViewBridge) => void;\r\n handleWebViewMessage?: (data: string) => void;\r\n};\r\n\r\ninterface WebViewViewerProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst WebViewViewer: React.FC<WebViewViewerProps> = ({ engine }) => {\r\n const webViewRef = useRef<WebView>(null);\r\n const { pageTheme } = useViewerStore();\r\n\r\n useEffect(() => {\r\n const bridgeEngine = engine as WebViewBridgeEngine;\r\n bridgeEngine.attachWebView?.({\r\n postMessage: (message: string) => {\r\n if (__DEV__) {\r\n const preview = message.length > 200 ? `${message.slice(0, 200)}…` : message;\r\n console.log('[Papyrus WebView] send', preview);\r\n }\r\n webViewRef.current?.postMessage(message);\r\n },\r\n });\r\n }, [engine]);\r\n\r\n const handleMessage = (event: WebViewMessageEvent) => {\r\n const bridgeEngine = engine as WebViewBridgeEngine;\r\n if (__DEV__) {\r\n console.log('[Papyrus WebView] message', event.nativeEvent.data);\r\n }\r\n bridgeEngine.handleWebViewMessage?.(event.nativeEvent.data);\r\n };\r\n\r\n const handleLoadEnd = () => {\r\n if (__DEV__) {\r\n console.log('[Papyrus WebView] loaded');\r\n }\r\n };\r\n\r\n const handleError = (event: WebViewErrorEvent) => {\r\n if (__DEV__) {\r\n console.warn('[Papyrus WebView] error', event.nativeEvent);\r\n }\r\n };\r\n\r\n const themeOverlayStyle = useMemo(() => {\r\n switch (pageTheme) {\r\n case 'sepia':\r\n return styles.themeSepia;\r\n case 'dark':\r\n return styles.themeDark;\r\n case 'high-contrast':\r\n return styles.themeContrast;\r\n default:\r\n return styles.themeNone;\r\n }\r\n }, [pageTheme]);\r\n\r\n return (\r\n <View style={styles.container}>\r\n <WebView\r\n ref={webViewRef}\r\n source={runtimeSource}\r\n originWhitelist={['*']}\r\n onMessage={handleMessage}\r\n onLoadEnd={handleLoadEnd}\r\n onError={handleError}\r\n javaScriptEnabled\r\n domStorageEnabled\r\n allowFileAccess\r\n allowUniversalAccessFromFileURLs\r\n style={styles.webview}\r\n />\r\n <View pointerEvents=\"none\" style={[styles.themeOverlay, themeOverlayStyle]} />\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n backgroundColor: '#ffffff',\r\n },\r\n webview: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n themeOverlay: {\r\n ...StyleSheet.absoluteFillObject,\r\n },\r\n themeNone: {\r\n backgroundColor: 'transparent',\r\n },\r\n themeSepia: {\r\n backgroundColor: 'rgba(244, 236, 216, 0.35)',\r\n },\r\n themeDark: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n themeContrast: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.35)',\r\n },\r\n});\r\n\r\nexport default WebViewViewer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { IconSettings, IconChevronLeft, IconChevronRight } from '../icons';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\n\r\ninterface TopbarProps {\r\n engine: DocumentEngine;\r\n onOpenSettings?: () => void;\r\n}\r\n\r\nconst Topbar: React.FC<TopbarProps> = ({ engine, onOpenSettings }) => {\r\n const {\r\n currentPage,\r\n pageCount,\r\n uiTheme,\r\n setDocumentState,\r\n triggerScrollToPage,\r\n accentColor,\r\n } = useViewerStore();\r\n const [pageLabel, setPageLabel] = useState(`${currentPage}`);\r\n const isDark = uiTheme === 'dark';\r\n const navIconColor = isDark ? '#e5e7eb' : '#111827';\r\n\r\n useEffect(() => {\r\n setPageLabel(`${currentPage}`);\r\n }, [currentPage]);\r\n\r\n const handlePageChange = (delta: number) => {\r\n const next = Math.max(1, Math.min(pageCount, currentPage + delta));\r\n engine.goToPage(next);\r\n setDocumentState({ currentPage: next });\r\n triggerScrollToPage(next - 1);\r\n };\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <View style={styles.leftGroup}>\r\n <View style={[styles.logoBadge, { backgroundColor: accentColor }]}>\r\n <Text style={styles.logoText}>P</Text>\r\n </View>\r\n <Text style={[styles.brandText, isDark && styles.brandTextDark]}>Papyrus</Text>\r\n </View>\r\n\r\n <View style={styles.pageGroup}>\r\n <Pressable onPress={() => handlePageChange(-1)} style={[styles.pageButton, isDark && styles.pageButtonDark]}>\r\n <IconChevronLeft size={16} color={navIconColor} />\r\n </Pressable>\r\n <Text style={[styles.pageIndicator, isDark && styles.pageIndicatorDark]}>\r\n {pageLabel}/{pageCount}\r\n </Text>\r\n <Pressable onPress={() => handlePageChange(1)} style={[styles.pageButton, isDark && styles.pageButtonDark]}>\r\n <IconChevronRight size={16} color={navIconColor} />\r\n </Pressable>\r\n </View>\r\n\r\n <View style={styles.rightGroup}>\r\n <Pressable\r\n onPress={() => onOpenSettings?.()}\r\n style={[styles.iconButton, isDark && styles.iconButtonDark]}\r\n >\r\n <IconSettings size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: 14,\r\n paddingVertical: 8,\r\n backgroundColor: '#ffffff',\r\n borderBottomWidth: 1,\r\n borderBottomColor: '#e5e7eb',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderBottomColor: '#1f2937',\r\n },\r\n leftGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n },\r\n logoBadge: {\r\n width: 26,\r\n height: 26,\r\n borderRadius: 8,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: '#2563eb',\r\n marginRight: 8,\r\n },\r\n logoText: {\r\n color: '#ffffff',\r\n fontWeight: '800',\r\n fontSize: 13,\r\n },\r\n brandText: {\r\n fontSize: 14,\r\n fontWeight: '800',\r\n color: '#111827',\r\n },\r\n brandTextDark: {\r\n color: '#f9fafb',\r\n },\r\n pageGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n justifyContent: 'center',\r\n },\r\n pageButton: {\r\n width: 26,\r\n height: 26,\r\n borderRadius: 10,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: '#f3f4f6',\r\n },\r\n pageButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n pageButtonText: {\r\n fontSize: 11,\r\n fontWeight: '600',\r\n color: '#111827',\r\n },\r\n pageButtonTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n pageIndicator: {\r\n fontSize: 12,\r\n color: '#374151',\r\n minWidth: 52,\r\n textAlign: 'center',\r\n marginHorizontal: 6,\r\n fontWeight: '700',\r\n },\r\n pageIndicatorDark: {\r\n color: '#d1d5db',\r\n },\r\n rightGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n flex: 1,\r\n },\r\n iconButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 6,\r\n borderRadius: 10,\r\n backgroundColor: '#f3f4f6',\r\n marginLeft: 6,\r\n },\r\n iconButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n iconButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n iconButtonText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n iconButtonTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n iconButtonTextActive: {\r\n color: '#ffffff',\r\n },\r\n iconRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n iconRowSpacer: {\r\n width: 6,\r\n },\r\n});\r\n\r\nexport default Topbar;\r\n","import React from 'react';\nimport Svg, { Path } from 'react-native-svg';\n\ntype IconProps = {\n size?: number;\n color?: string;\n strokeWidth?: number;\n};\n\nconst defaultColor = '#111827';\n\nexport const IconDocument: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M10 3v4a1 1 0 0 1-1 1H5m14-4v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V7.914a1 1 0 0 1 .293-.707l3.914-3.914A1 1 0 0 1 9.914 3H18a1 1 0 0 1 1 1Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconGrid: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M9.143 4H4.857A.857.857 0 0 0 4 4.857v4.286c0 .473.384.857.857.857h4.286A.857.857 0 0 0 10 9.143V4.857A.857.857 0 0 0 9.143 4Zm10 0h-4.286a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286A.857.857 0 0 0 20 9.143V4.857A.857.857 0 0 0 19.143 4Zm-10 10H4.857a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286a.857.857 0 0 0 .857-.857v-4.286A.857.857 0 0 0 9.143 14Zm10 0h-4.286a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286a.857.857 0 0 0 .857-.857v-4.286a.857.857 0 0 0-.857-.857Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconSearch: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m21 21-3.5-3.5M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n />\n </Svg>\n);\n\nexport const IconZoomIn: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path d=\"M5 12h14m-7 7V5\" stroke={color} strokeWidth={strokeWidth} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Svg>\n);\n\nexport const IconZoomOut: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path d=\"M5 12h14\" stroke={color} strokeWidth={strokeWidth} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Svg>\n);\n\nexport const IconSettings: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M21 13v-2a1 1 0 0 0-1-1h-.757l-.707-1.707.535-.536a1 1 0 0 0 0-1.414l-1.414-1.414a1 1 0 0 0-1.414 0l-.536.535L14 4.757V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v.757l-1.707.707-.536-.535a1 1 0 0 0-1.414 0L4.929 6.343a1 1 0 0 0 0 1.414l.536.536L4.757 10H4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h.757l.707 1.707-.535.536a1 1 0 0 0 0 1.414l1.414 1.414a1 1 0 0 0 1.414 0l.536-.535 1.707.707V20a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-.757l1.707-.708.536.536a1 1 0 0 0 1.414 0l1.414-1.414a1 1 0 0 0 0-1.414l-.535-.536.707-1.707H20a1 1 0 0 0 1-1Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <Path\n d=\"M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconComment: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M7.556 8.5h8m-8 3.5H12m7.111-7H4.89a.896.896 0 0 0-.629.256.868.868 0 0 0-.26.619v9.25c0 .232.094.455.26.619A.896.896 0 0 0 4.89 16H9l3 4 3-4h4.111a.896.896 0 0 0 .629-.256.868.868 0 0 0 .26-.619v-9.25a.868.868 0 0 0-.26-.619.896.896 0 0 0-.63-.256Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconCursor: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M9 20H5.5c-.27614 0-.5-.2239-.5-.5v-3c0-.2761.22386-.5.5-.5h13c.2761 0 .5.2239.5.5v3c0 .2761-.2239.5-.5.5H18m-6-1 1.42 1.8933c.04.0534.12.0534.16 0L15 19m-7-6 3.9072-9.76789c.0335-.08381.1521-.08381.1856 0L16 13m-8 0H7m1 0h1.5m6.5 0h-1.5m1.5 0h1m-7-3.00001h4\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n />\n </Svg>\n);\n\nexport const IconPalette: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M12 7h.01m3.486 1.513h.01m-6.978 0h.01M6.99 12H7m9 4h2.706a1.957 1.957 0 0 0 1.883-1.325A9 9 0 1 0 3.043 12.89 9.1 9.1 0 0 0 8.2 20.1a8.62 8.62 0 0 0 3.769.9 2.013 2.013 0 0 0 2.03-2v-.857A2.036 2.036 0 0 1 16 16Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconTrash: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M5 7h14m-9 3v8m4-8v8M10 3h4a1 1 0 0 1 1 1v3H9V4a1 1 0 0 1 1-1ZM6 7h12v13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V7Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconLink: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M13.213 9.787a3.391 3.391 0 0 0-4.795 0l-3.425 3.426a3.39 3.39 0 0 0 4.795 4.794l.321-.304m-.321-4.49a3.39 3.39 0 0 0 4.795 0l3.424-3.426a3.39 3.39 0 0 0-4.794-4.795l-1.028.961\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconEdit: React.FC<{ size?: number; color?: string }> = ({ size = 18, color = defaultColor }) => (\n <Svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\">\n <Path\n d=\"M5 1a2 2 0 0 0-2 2v9.998a2 2 0 0 0 2 2h1.046l.25-1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3v2.5A1.5 1.5 0 0 0 9.498 6h2.5v1.44a2.535 2.535 0 0 1 1-.405V5.413a1.5 1.5 0 0 0-.44-1.06L9.645 1.439A1.5 1.5 0 0 0 8.585 1H5Zm6.791 4H9.5a.5.5 0 0 1-.5-.5V2.206l2.792 2.792Zm1.207 3.06a1.56 1.56 0 0 0-.662.394L8.05 12.74a2.777 2.777 0 0 0-.722 1.257l-.009.033l-.302 1.211a.61.61 0 0 0 .738.74l1.211-.303a2.776 2.776 0 0 0 1.29-.73l4.288-4.288a1.56 1.56 0 0 0-1.545-2.6Z\"\n fill={color}\n />\n </Svg>\n);\n\nexport const IconChevronRight: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m9 5 7 7-7 7\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconChevronLeft: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m15 19-7-7 7-7\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconHand: React.FC<{ size?: number; color?: string }> = ({ size = 20, color = '#111827' }) => (\n <Svg width={size} height={size} viewBox=\"0 0 56 56\" fill=\"none\">\n <Path\n d=\"M25.129 53.512c8.25 0 14.039-4.477 17.156-13.266l4.125-11.602c1.031-2.93.094-5.343-2.344-6.234c-2.18-.797-4.336.14-5.367 2.555l-1.523 3.75c-.047.094-.117.164-.211.164c-.117 0-.164-.094-.164-.211V9.871c0-2.742-1.711-4.453-4.336-4.453c-.961 0-1.828.328-2.485.938c-.304-2.391-1.851-3.868-4.171-3.868c-2.274 0-3.868 1.524-4.22 3.82c-.585-.585-1.429-.89-2.273-.89c-2.437 0-4.054 1.688-4.054 4.29v2.6c-.633-.656-1.57-1.007-2.578-1.007c-2.438 0-4.125 1.804-4.125 4.43v20.132c0 10.969 6.656 17.649 16.57 17.649m-.117-3.258c-8.297 0-13.36-5.32-13.36-14.766v-19.43c0-.984.633-1.687 1.618-1.687c.96 0 1.664.703 1.664 1.688v11.976c0 .867.703 1.453 1.453 1.453c.797 0 1.523-.586 1.523-1.453V10.13c0-1.008.633-1.688 1.594-1.688c.984 0 1.664.68 1.664 1.688v16.71c0 .868.703 1.454 1.477 1.454c.796 0 1.523-.586 1.523-1.453V7.223c0-.985.656-1.711 1.64-1.711c.938 0 1.618.726 1.618 1.71V26.84c0 .82.656 1.453 1.476 1.453c.797 0 1.5-.633 1.5-1.453V10.129c0-1.008.68-1.688 1.641-1.688c.984 0 1.64.68 1.64 1.688V33.19c0 1.078.68 1.852 1.665 1.852c.843 0 1.547-.375 2.086-1.547l3.187-7.125c.422-1.008 1.266-1.523 2.133-1.195c.937.375 1.266 1.265.82 2.484l-4.148 11.578c-2.86 7.993-7.875 11.016-14.414 11.016\"\n fill={color}\n />\n </Svg>\n);\n","import React from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\n\r\nconst COLOR_SWATCHES = [\r\n '#fbbf24',\r\n '#f97316',\r\n '#ef4444',\r\n '#10b981',\r\n '#22d3ee',\r\n '#3b82f6',\r\n '#8b5cf6',\r\n '#ec4899',\r\n '#f3f4f6',\r\n '#111827',\r\n];\r\n\r\nconst ToolDock: React.FC = () => {\r\n const { selectionActive, uiTheme, locale, annotationColor, setAnnotationColor, accentColor } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const isVisible = selectionActive;\r\n const t = getStrings(locale);\r\n\r\n if (!isVisible) return null;\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <Text style={[styles.title, isDark && styles.titleDark]}>{t.highlight}</Text>\r\n <View style={styles.paletteRow}>\r\n {COLOR_SWATCHES.map((color) => {\r\n const isSelected = annotationColor === color;\r\n return (\r\n <Pressable\r\n key={color}\r\n onPress={() => setAnnotationColor(color)}\r\n style={[\r\n styles.swatch,\r\n { backgroundColor: color },\r\n isSelected && styles.swatchSelected,\r\n isSelected && { borderColor: accentColor },\r\n ]}\r\n />\r\n );\r\n })}\r\n </View>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n position: 'absolute',\r\n left: 16,\r\n right: 16,\r\n bottom: 72,\r\n paddingVertical: 10,\r\n paddingHorizontal: 12,\r\n borderRadius: 16,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n shadowColor: '#000000',\r\n shadowOpacity: 0.15,\r\n shadowRadius: 14,\r\n shadowOffset: { width: 0, height: 6 },\r\n elevation: 6,\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderColor: '#1f2937',\r\n },\r\n title: {\r\n fontSize: 11,\r\n fontWeight: '800',\r\n color: '#111827',\r\n marginBottom: 8,\r\n },\r\n titleDark: {\r\n color: '#e5e7eb',\r\n },\r\n paletteRow: {\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n },\r\n swatch: {\r\n width: 20,\r\n height: 20,\r\n borderRadius: 10,\r\n marginRight: 8,\r\n marginBottom: 8,\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n swatchSelected: {\r\n borderColor: '#2563eb',\r\n borderWidth: 2,\r\n },\r\n});\r\n\r\nexport default ToolDock;\r\n","import { Locale } from '@papyrus-sdk/types';\r\n\r\ntype Strings = {\r\n pages: string;\r\n search: string;\r\n notes: string;\r\n read: string;\r\n edit: string;\r\n done: string;\r\n page: string;\r\n summary: string;\r\n pagesTab: string;\r\n summaryTab: string;\r\n searchPlaceholder: string;\r\n searchGo: string;\r\n results: string;\r\n searching: string;\r\n noResults: string;\r\n noSummary: string;\r\n noAnnotations: string;\r\n untitled: string;\r\n pageTransition: string;\r\n continuous: string;\r\n pageByPage: string;\r\n layout: string;\r\n singlePage: string;\r\n doublePage: string;\r\n rotate: string;\r\n clockwise: string;\r\n counterclockwise: string;\r\n zoom: string;\r\n highlight: string;\r\n strike: string;\r\n text: string;\r\n note: string;\r\n editNote: string;\r\n notePlaceholder: string;\r\n cancel: string;\r\n save: string;\r\n language: string;\r\n english: string;\r\n portuguese: string;\r\n appearance: string;\r\n light: string;\r\n dark: string;\r\n pageTheme: string;\r\n themeOriginal: string;\r\n themeSepia: string;\r\n themeDark: string;\r\n themeContrast: string;\r\n};\r\n\r\nconst STRINGS: Record<Locale, Strings> = {\r\n en: {\r\n pages: 'Pages',\r\n search: 'Search',\r\n notes: 'Notes',\r\n read: 'Read',\r\n edit: 'Edit',\r\n done: 'Done',\r\n page: 'Page',\r\n summary: 'Summary',\r\n pagesTab: 'Pages',\r\n summaryTab: 'Summary',\r\n searchPlaceholder: 'Search text...',\r\n searchGo: 'Go',\r\n results: 'results',\r\n searching: 'Searching...',\r\n noResults: 'No results yet.',\r\n noSummary: 'No summary available.',\r\n noAnnotations: 'No annotations yet.',\r\n untitled: 'Untitled',\r\n pageTransition: 'Page transition',\r\n continuous: 'Continuous',\r\n pageByPage: 'Page by page',\r\n layout: 'Layout',\r\n singlePage: 'Single page',\r\n doublePage: 'Double page',\r\n rotate: 'Rotate',\r\n clockwise: 'Clockwise',\r\n counterclockwise: 'Counterclockwise',\r\n zoom: 'Zoom',\r\n highlight: 'Highlight',\r\n strike: 'Strike',\r\n text: 'Text',\r\n note: 'Note',\r\n editNote: 'Edit note',\r\n notePlaceholder: 'Write your note...',\r\n cancel: 'Cancel',\r\n save: 'Save',\r\n language: 'Language',\r\n english: 'English',\r\n portuguese: 'Portuguese (BR)',\r\n appearance: 'Appearance',\r\n light: 'Light',\r\n dark: 'Dark',\r\n pageTheme: 'Page theme',\r\n themeOriginal: 'Original',\r\n themeSepia: 'Sepia',\r\n themeDark: 'Dark',\r\n themeContrast: 'High contrast',\r\n },\r\n 'pt-BR': {\r\n pages: 'Paginas',\r\n search: 'Buscar',\r\n notes: 'Notas',\r\n read: 'Ler',\r\n edit: 'Editar',\r\n done: 'Concluir',\r\n page: 'Pagina',\r\n summary: 'Sumario',\r\n pagesTab: 'Paginas',\r\n summaryTab: 'Sumario',\r\n searchPlaceholder: 'Pesquisar texto...',\r\n searchGo: 'Buscar',\r\n results: 'resultados',\r\n searching: 'Pesquisando...',\r\n noResults: 'Nenhum resultado.',\r\n noSummary: 'Sem sumario.',\r\n noAnnotations: 'Sem anotacoes.',\r\n untitled: 'Sem titulo',\r\n pageTransition: 'Transicao de pagina',\r\n continuous: 'Continuo',\r\n pageByPage: 'Pagina por pagina',\r\n layout: 'Layout',\r\n singlePage: 'Pagina unica',\r\n doublePage: 'Pagina dupla',\r\n rotate: 'Girar',\r\n clockwise: 'Sentido horario',\r\n counterclockwise: 'Sentido anti-horario',\r\n zoom: 'Zoom',\r\n highlight: 'Marca texto',\r\n strike: 'Risco',\r\n text: 'Texto',\r\n note: 'Nota',\r\n editNote: 'Editar nota',\r\n notePlaceholder: 'Escreva sua nota...',\r\n cancel: 'Cancelar',\r\n save: 'Salvar',\r\n language: 'Idioma',\r\n english: 'Ingles',\r\n portuguese: 'Portugues (BR)',\r\n appearance: 'Aparencia',\r\n light: 'Claro',\r\n dark: 'Escuro',\r\n pageTheme: 'Tema da pagina',\r\n themeOriginal: 'Original',\r\n themeSepia: 'Sepia',\r\n themeDark: 'Escuro',\r\n themeContrast: 'Contraste',\r\n },\r\n};\r\n\r\nexport const getStrings = (locale: Locale | undefined) => STRINGS[locale ?? 'en'] ?? STRINGS.en;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport {\r\n Modal,\r\n View,\r\n Text,\r\n Pressable,\r\n TextInput,\r\n StyleSheet,\r\n ScrollView,\r\n ActivityIndicator,\n FlatList,\n Dimensions,\n Platform,\n UIManager,\n findNodeHandle,\n type LayoutChangeEvent,\n} from 'react-native';\nimport { useViewerStore, SearchService } from '@papyrus-sdk/core';\r\nimport { DocumentEngine, OutlineItem } from '@papyrus-sdk/types';\r\nimport { PapyrusPageView } from '@papyrus-sdk/engine-native';\r\nimport { getStrings } from '../strings';\r\nimport { IconChevronLeft, IconChevronRight } from '../icons';\r\n\r\ninterface RightSheetProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst withAlpha = (hex: string, alpha: number) => {\r\n const normalized = hex.replace('#', '').trim();\r\n const value =\r\n normalized.length === 3\r\n ? normalized\r\n .split('')\r\n .map((c) => c + c)\r\n .join('')\r\n : normalized;\r\n if (value.length !== 6) return hex;\r\n const r = parseInt(value.slice(0, 2), 16);\r\n const g = parseInt(value.slice(2, 4), 16);\r\n const b = parseInt(value.slice(4, 6), 16);\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n};\r\n\r\nconst PageThumbnail: React.FC<{\r\n engine: DocumentEngine;\r\n pageIndex: number;\r\n isActive: boolean;\r\n isDark: boolean;\r\n zoom: number;\r\n cardWidth: number;\r\n frameWidth: number;\n frameHeight: number;\n accentColor: string;\n useNativePreview: boolean;\n onPress: () => void;\n}> = ({\n engine,\n pageIndex,\n isActive,\n isDark,\n zoom,\n cardWidth,\n frameWidth,\n frameHeight,\n accentColor,\n useNativePreview,\n onPress,\n}) => {\n const viewRef = useRef<any>(null);\n const [layoutReady, setLayoutReady] = useState(false);\n\n useEffect(() => {\n if (!layoutReady || !useNativePreview) return;\n const viewTag = findNodeHandle(viewRef.current);\n if (!viewTag) return;\n const isNative = Platform.OS === 'android' || Platform.OS === 'ios';\n const renderScale = isNative ? 2.0 / Math.max(zoom, 0.5) : 2.0;\n void engine.renderPage(pageIndex, viewTag, renderScale);\n }, [engine, pageIndex, layoutReady, useNativePreview, zoom]);\n\r\n const handleLayout = (event: LayoutChangeEvent) => {\r\n if (event.nativeEvent.layout.width && event.nativeEvent.layout.height) {\r\n setLayoutReady(true);\r\n }\r\n };\r\n\r\n return (\r\n <Pressable\r\n onPress={onPress}\r\n style={[\r\n styles.thumbCard,\r\n { width: cardWidth },\r\n isDark && styles.thumbCardDark,\r\n isActive && styles.thumbCardActive,\r\n isActive && { borderColor: accentColor },\r\n ]}\n >\n <View onLayout={handleLayout} style={[styles.thumbFrame, { width: frameWidth, height: frameHeight }]}>\n {useNativePreview ? (\n <PapyrusPageView ref={viewRef} style={styles.thumbView} />\n ) : (\n <View style={[styles.thumbFallback, isDark && styles.thumbFallbackDark]}>\n <Text style={[styles.thumbFallbackText, isDark && styles.thumbFallbackTextDark]}>\n {pageIndex + 1}\n </Text>\n </View>\n )}\n </View>\n <Text style={[styles.thumbLabel, isDark && styles.thumbLabelDark]}>{pageIndex + 1}</Text>\n </Pressable>\n );\n};\n\r\nconst OutlineNode: React.FC<{\r\n item: OutlineItem;\r\n depth?: number;\r\n isDark: boolean;\r\n onSelect: (pageIndex: number) => void;\r\n untitledLabel: string;\r\n}> = ({ item, depth = 0, isDark, onSelect, untitledLabel }) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isClickable = item.pageIndex >= 0;\r\n\r\n return (\r\n <View>\r\n <Pressable\r\n onPress={() => {\r\n if (isClickable) onSelect(item.pageIndex);\r\n }}\r\n style={[styles.outlineRow, { paddingLeft: 12 + depth * 12 }]}\r\n >\r\n <Text\r\n style={[\r\n styles.outlineText,\r\n isDark && styles.outlineTextDark,\r\n !isClickable && styles.outlineTextMuted,\r\n ]}\r\n numberOfLines={2}\r\n >\r\n {item.title || untitledLabel}\r\n </Text>\r\n </Pressable>\r\n {hasChildren &&\r\n item.children!.map((child, index) => (\r\n <OutlineNode\r\n key={`${child.title}-${index}`}\r\n item={child}\r\n depth={depth + 1}\r\n isDark={isDark}\r\n onSelect={onSelect}\r\n untitledLabel={untitledLabel}\r\n />\r\n ))}\r\n </View>\r\n );\r\n};\r\n\r\nconst RightSheet: React.FC<RightSheetProps> = ({ engine }) => {\r\n const {\r\n sidebarRightOpen,\r\n sidebarRightTab,\r\n toggleSidebarRight,\r\n outline,\r\n searchResults,\r\n searchQuery,\r\n activeSearchIndex,\r\n nextSearchResult,\r\n prevSearchResult,\r\n annotations,\r\n uiTheme,\r\n setSearch,\r\n setDocumentState,\r\n triggerScrollToPage,\r\n setSelectedAnnotation,\r\n pageCount,\r\n currentPage,\r\n zoom,\r\n locale,\r\n accentColor,\r\n } = useViewerStore();\r\n const [pagesMode, setPagesMode] = useState<'thumbnails' | 'summary'>('thumbnails');\r\n const [query, setQuery] = useState('');\r\n const [isSearching, setIsSearching] = useState(false);\r\n const searchService = useMemo(() => new SearchService(engine), [engine]);\r\n const isDark = uiTheme === 'dark';\r\n const accentSoft = withAlpha(accentColor, 0.2);\r\n const accentStrong = withAlpha(accentColor, 0.35);\r\n const t = getStrings(locale);\n const sheetHeight = Math.min(640, Dimensions.get('window').height * 0.72);\n const windowWidth = Dimensions.get('window').width;\n const gridGutter = 12;\n const gridPadding = 16;\n const cardWidth = (windowWidth - gridPadding * 2 - gridGutter) / 2;\n const frameWidth = cardWidth - 16;\n const frameHeight = frameWidth * 1.28;\n const renderTarget = engine.getRenderTargetType?.();\n const hasNativePageView = Boolean(UIManager.getViewManagerConfig?.('PapyrusPageView'));\n const useNativePreview = renderTarget !== 'webview' && hasNativePageView;\n\r\n const closeSheet = () => toggleSidebarRight();\r\n\r\n const handleSearch = async () => {\r\n const trimmed = query.trim();\r\n if (!trimmed) {\r\n setSearch('', []);\r\n return;\r\n }\r\n setIsSearching(true);\r\n try {\r\n const results = await searchService.search(trimmed);\r\n setSearch(trimmed, results);\r\n } finally {\r\n setIsSearching(false);\r\n }\r\n };\r\n\r\n const pages = useMemo(() => Array.from({ length: pageCount }, (_, i) => i), [pageCount]);\r\n\r\n const renderHighlightedSnippet = (text: string, isActive: boolean) => {\r\n const trimmedQuery = searchQuery.trim();\r\n if (trimmedQuery.length < 2) {\r\n return (\r\n <Text\r\n style={[\r\n styles.resultText,\r\n isDark && styles.resultTextDark,\r\n isActive && styles.resultTextActive,\r\n isActive && { color: accentColor },\r\n ]}\r\n >\r\n ...{text}...\r\n </Text>\r\n );\r\n }\r\n\r\n const lowerText = text.toLowerCase();\r\n const lowerQuery = trimmedQuery.toLowerCase();\r\n const parts: Array<{ text: string; match: boolean }> = [];\r\n let cursor = 0;\r\n\r\n while (cursor < text.length) {\r\n const index = lowerText.indexOf(lowerQuery, cursor);\r\n if (index === -1) {\r\n parts.push({ text: text.slice(cursor), match: false });\r\n break;\r\n }\r\n if (index > cursor) {\r\n parts.push({ text: text.slice(cursor, index), match: false });\r\n }\r\n parts.push({ text: text.slice(index, index + trimmedQuery.length), match: true });\r\n cursor = index + trimmedQuery.length;\r\n }\r\n\r\n return (\r\n <Text\r\n style={[\r\n styles.resultText,\r\n isDark && styles.resultTextDark,\r\n isActive && styles.resultTextActive,\r\n isActive && { color: accentColor },\r\n ]}\r\n >\r\n {parts.map((part, idx) => (\r\n <Text\r\n key={`${idx}-${part.text}`}\r\n style={[\r\n part.match && styles.matchText,\r\n part.match && isDark && styles.matchTextDark,\r\n part.match && isActive && styles.matchTextActive,\r\n part.match && isActive && { backgroundColor: accentStrong, color: accentColor },\r\n ]}\r\n >\r\n {part.text}\r\n </Text>\r\n ))}\r\n </Text>\r\n );\r\n };\r\n\r\n if (!sidebarRightOpen) return null;\r\n\r\n return (\r\n <Modal visible transparent animationType=\"slide\" onRequestClose={closeSheet}>\r\n <View style={styles.modalRoot}>\r\n <Pressable style={styles.backdrop} onPress={closeSheet} />\r\n <View style={[styles.sheet, { height: sheetHeight }, isDark && styles.sheetDark]}>\r\n <View style={[styles.handle, isDark && styles.handleDark]} />\r\n <View style={styles.tabs}>\r\n {['pages', 'search', 'annotations'].map((tab) => (\r\n <Pressable\r\n key={tab}\r\n onPress={() => toggleSidebarRight(tab as 'pages' | 'search' | 'annotations')}\r\n style={[\r\n styles.tabButton,\r\n isDark && styles.tabButtonDark,\r\n sidebarRightTab === tab && styles.tabButtonActive,\r\n sidebarRightTab === tab && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.tabText,\r\n isDark && styles.tabTextDark,\r\n sidebarRightTab === tab && styles.tabTextActive,\r\n ]}\r\n >\r\n {tab === 'pages' ? t.pages : tab === 'search' ? t.search : t.notes}\r\n </Text>\r\n </Pressable>\r\n ))}\r\n </View>\r\n\r\n {sidebarRightTab === 'pages' ? (\r\n <View style={styles.pagesContent}>\r\n <View style={styles.pageHeader}>\r\n <Text style={[styles.pageStatus, isDark && styles.pageStatusDark]}>\r\n {t.page} {currentPage} / {pageCount}\r\n </Text>\r\n <View style={[styles.segmented, isDark && styles.segmentedDark]}>\r\n <Pressable\r\n onPress={() => setPagesMode('thumbnails')}\r\n style={[\r\n styles.segmentButton,\r\n pagesMode === 'thumbnails' && styles.segmentButtonActive,\r\n pagesMode === 'thumbnails' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.segmentText,\r\n isDark && styles.segmentTextDark,\r\n pagesMode === 'thumbnails' && styles.segmentTextActive,\r\n ]}\r\n >\r\n {t.pagesTab}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setPagesMode('summary')}\r\n style={[\r\n styles.segmentButton,\r\n pagesMode === 'summary' && styles.segmentButtonActive,\r\n pagesMode === 'summary' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.segmentText,\r\n isDark && styles.segmentTextDark,\r\n pagesMode === 'summary' && styles.segmentTextActive,\r\n ]}\r\n >\r\n {t.summaryTab}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n {pagesMode === 'thumbnails' ? (\r\n <FlatList\r\n data={pages}\r\n keyExtractor={(item) => `thumb-${item}`}\r\n numColumns={2}\r\n contentContainerStyle={styles.thumbGrid}\r\n columnWrapperStyle={styles.thumbRow}\r\n showsVerticalScrollIndicator={false}\r\n initialNumToRender={6}\r\n renderItem={({ item }) => (\r\n <PageThumbnail\r\n engine={engine}\r\n pageIndex={item}\r\n isActive={item + 1 === currentPage}\r\n isDark={isDark}\r\n zoom={zoom}\n cardWidth={cardWidth}\n frameWidth={frameWidth}\n frameHeight={frameHeight}\n accentColor={accentColor}\n useNativePreview={useNativePreview}\n onPress={() => {\n engine.goToPage(item + 1);\n setDocumentState({ currentPage: item + 1 });\n triggerScrollToPage(item);\n closeSheet();\r\n }}\r\n />\r\n )}\r\n />\r\n ) : (\r\n <ScrollView contentContainerStyle={styles.summaryContent} showsVerticalScrollIndicator={false}>\r\n {outline.length === 0 ? (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noSummary}\r\n </Text>\r\n ) : (\r\n outline.map((item, index) => (\r\n <OutlineNode\r\n key={`${item.title}-${index}`}\r\n item={item}\r\n isDark={isDark}\r\n untitledLabel={t.untitled}\r\n onSelect={(pageIndex) => {\r\n engine.goToPage(pageIndex + 1);\r\n setDocumentState({ currentPage: pageIndex + 1 });\r\n triggerScrollToPage(pageIndex);\r\n closeSheet();\r\n }}\r\n />\r\n ))\r\n )}\r\n </ScrollView>\r\n )}\r\n </View>\r\n ) : (\r\n <ScrollView contentContainerStyle={styles.content} showsVerticalScrollIndicator={false}>\r\n {sidebarRightTab === 'search' ? (\r\n <View>\r\n <View style={[styles.searchBox, isDark && styles.searchBoxDark]}>\r\n <TextInput\r\n value={query}\r\n onChangeText={setQuery}\r\n placeholder={t.searchPlaceholder}\r\n placeholderTextColor={isDark ? '#9ca3af' : '#6b7280'}\r\n style={[styles.searchInput, isDark && styles.searchInputDark]}\r\n onSubmitEditing={handleSearch}\r\n returnKeyType=\"search\"\r\n />\r\n <Pressable onPress={handleSearch} style={[styles.searchButton, { backgroundColor: accentColor }]}>\r\n <Text style={styles.searchButtonText}>{t.searchGo}</Text>\r\n </Pressable>\r\n </View>\r\n\r\n <View style={styles.searchMeta}>\r\n <Text style={[styles.searchCount, isDark && styles.searchCountDark, { color: accentColor }]}>\r\n {searchResults.length} {t.results}\r\n </Text>\r\n <View style={styles.searchNav}>\r\n <Pressable\r\n onPress={prevSearchResult}\r\n disabled={searchResults.length === 0}\r\n style={[\r\n styles.searchNavButton,\r\n isDark && styles.searchNavButtonDark,\r\n searchResults.length === 0 && styles.searchNavButtonDisabled,\r\n ]}\r\n >\r\n <IconChevronLeft size={14} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n <Pressable\r\n onPress={nextSearchResult}\r\n disabled={searchResults.length === 0}\r\n style={[\r\n styles.searchNavButton,\r\n isDark && styles.searchNavButtonDark,\r\n searchResults.length === 0 && styles.searchNavButtonDisabled,\r\n ]}\r\n >\r\n <IconChevronRight size={14} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n {isSearching && (\r\n <View style={styles.searchStatus}>\r\n <ActivityIndicator size=\"small\" color={accentColor} />\r\n <Text style={[styles.searchStatusText, isDark && styles.searchStatusTextDark]}>\r\n {t.searching}\r\n </Text>\r\n </View>\r\n )}\r\n\r\n {!isSearching && searchResults.length === 0 && (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noResults}\r\n </Text>\r\n )}\r\n\r\n {!isSearching &&\r\n searchResults.map((res, idx) => {\r\n const isActive = idx === activeSearchIndex;\r\n return (\r\n <Pressable\r\n key={`${res.pageIndex}-${idx}`}\r\n onPress={() => {\r\n setDocumentState({ activeSearchIndex: idx });\r\n triggerScrollToPage(res.pageIndex);\r\n closeSheet();\r\n }}\r\n style={[\r\n styles.resultCard,\r\n isDark && styles.resultCardDark,\r\n isActive && styles.resultCardActive,\r\n isActive && { borderColor: accentColor },\r\n ]}\r\n >\r\n <Text style={[styles.resultPage, isDark && styles.resultPageDark, { color: accentColor }]}>\r\n {t.page} {res.pageIndex + 1}\r\n </Text>\r\n {renderHighlightedSnippet(res.text, isActive)}\r\n </Pressable>\r\n );\r\n })}\r\n </View>\r\n ) : (\r\n <View>\r\n {annotations.length === 0 ? (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noAnnotations}\r\n </Text>\r\n ) : (\r\n annotations.map((ann) => (\r\n <Pressable\r\n key={ann.id}\r\n onPress={() => {\r\n setSelectedAnnotation(ann.id);\r\n triggerScrollToPage(ann.pageIndex);\r\n closeSheet();\r\n }}\r\n style={[styles.noteCard, isDark && styles.noteCardDark]}\r\n >\r\n <View style={styles.noteHeader}>\r\n <View style={[styles.noteDot, { backgroundColor: ann.color }]} />\r\n <Text style={[styles.noteTitle, isDark && styles.noteTitleDark]}>\r\n {t.page} {ann.pageIndex + 1}\r\n </Text>\r\n </View>\r\n <Text style={[styles.noteType, isDark && styles.noteTypeDark, { color: accentColor }]}>\r\n {ann.type === 'comment' || ann.type === 'text' ? t.note.toUpperCase() : ann.type.toUpperCase()}\r\n </Text>\r\n {ann.content ? (\r\n <Text style={[styles.noteContent, isDark && styles.noteContentDark]}>\r\n {ann.content}\r\n </Text>\r\n ) : null}\r\n </Pressable>\r\n ))\r\n )}\r\n </View>\r\n )}\r\n </ScrollView>\r\n )}\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalRoot: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n backdrop: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\r\n },\r\n sheet: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: '#ffffff',\r\n borderTopLeftRadius: 20,\r\n borderTopRightRadius: 20,\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n paddingBottom: 16,\r\n },\r\n sheetDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n handle: {\r\n width: 44,\r\n height: 4,\r\n borderRadius: 999,\r\n backgroundColor: '#cbd5f5',\r\n alignSelf: 'center',\r\n marginTop: 10,\r\n marginBottom: 12,\r\n },\r\n handleDark: {\r\n backgroundColor: '#374151',\r\n },\r\n tabs: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n paddingHorizontal: 16,\r\n marginBottom: 10,\r\n },\r\n tabButton: {\r\n paddingVertical: 6,\r\n paddingHorizontal: 14,\r\n borderRadius: 999,\r\n marginRight: 8,\r\n backgroundColor: '#e5e7eb',\r\n },\r\n tabButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n tabButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n tabText: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n tabTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n tabTextActive: {\r\n color: '#ffffff',\r\n },\r\n pagesContent: {\r\n paddingHorizontal: 16,\r\n flex: 1,\r\n },\r\n pageHeader: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n marginBottom: 10,\r\n },\r\n pageStatus: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n pageStatusDark: {\r\n color: '#e5e7eb',\r\n },\r\n segmented: {\r\n flexDirection: 'row',\r\n backgroundColor: '#e5e7eb',\r\n borderRadius: 999,\r\n padding: 2,\r\n },\r\n segmentedDark: {\r\n backgroundColor: '#111827',\r\n },\r\n segmentButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 5,\r\n borderRadius: 999,\r\n },\r\n segmentButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n segmentText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n segmentTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n segmentTextActive: {\r\n color: '#ffffff',\r\n },\r\n thumbGrid: {\r\n paddingHorizontal: 16,\r\n paddingBottom: 16,\r\n },\r\n thumbRow: {\r\n justifyContent: 'space-between',\r\n marginBottom: 12,\r\n },\r\n thumbCard: {\r\n padding: 8,\r\n borderRadius: 14,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n alignItems: 'center',\r\n },\r\n thumbCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n thumbCardActive: {\r\n borderColor: '#2563eb',\r\n },\r\n thumbFrame: {\r\n borderRadius: 10,\r\n backgroundColor: '#ffffff',\r\n overflow: 'hidden',\r\n },\r\n thumbView: {\n width: '100%',\n height: '100%',\n },\n thumbFallback: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#ffffff',\n },\n thumbFallbackDark: {\n backgroundColor: '#0b0f14',\n },\n thumbFallbackText: {\n fontSize: 18,\n fontWeight: '800',\n color: '#1f2937',\n },\n thumbFallbackTextDark: {\n color: '#e5e7eb',\n },\n thumbLabel: {\r\n marginTop: 6,\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n thumbLabelDark: {\r\n color: '#e5e7eb',\r\n },\r\n content: {\r\n paddingHorizontal: 16,\r\n paddingBottom: 16,\r\n },\r\n summaryContent: {\r\n paddingBottom: 24,\r\n },\r\n outlineRow: {\r\n paddingVertical: 8,\r\n borderBottomWidth: 1,\r\n borderBottomColor: 'rgba(148, 163, 184, 0.18)',\r\n },\r\n outlineText: {\r\n fontSize: 12,\r\n fontWeight: '600',\r\n color: '#111827',\r\n },\r\n outlineTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n outlineTextMuted: {\r\n color: '#9ca3af',\r\n },\r\n searchBox: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n borderRadius: 10,\r\n backgroundColor: '#f3f4f6',\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n searchBoxDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n searchInput: {\r\n flex: 1,\r\n fontSize: 12,\r\n color: '#111827',\r\n },\r\n searchInputDark: {\r\n color: '#e5e7eb',\r\n },\r\n searchButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 4,\r\n borderRadius: 6,\r\n backgroundColor: '#2563eb',\r\n },\r\n searchButtonText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#ffffff',\r\n },\r\n searchStatus: {\r\n marginTop: 12,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n searchStatusText: {\r\n marginLeft: 8,\r\n fontSize: 11,\r\n color: '#4b5563',\r\n },\r\n searchStatusTextDark: {\r\n color: '#9ca3af',\r\n },\r\n searchMeta: {\r\n marginTop: 12,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n searchCount: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#2563eb',\r\n },\r\n searchCountDark: {\r\n color: '#60a5fa',\r\n },\r\n searchNav: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n searchNavButton: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#e5e7eb',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginLeft: 6,\r\n },\r\n searchNavButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n searchNavButtonDisabled: {\r\n opacity: 0.5,\r\n },\r\n emptyText: {\r\n marginTop: 16,\r\n fontSize: 12,\r\n color: '#6b7280',\r\n },\r\n emptyTextDark: {\r\n color: '#9ca3af',\r\n },\r\n resultCard: {\r\n marginTop: 12,\r\n padding: 12,\r\n borderRadius: 12,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n resultCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n resultCardActive: {\r\n borderColor: '#2563eb',\r\n },\r\n resultPage: {\r\n fontSize: 10,\r\n fontWeight: '800',\r\n color: '#2563eb',\r\n marginBottom: 6,\r\n },\r\n resultPageDark: {\r\n color: '#60a5fa',\r\n },\r\n resultText: {\r\n fontSize: 11,\r\n color: '#374151',\r\n },\r\n resultTextDark: {\r\n color: '#d1d5db',\r\n },\r\n resultTextActive: {\r\n color: '#1d4ed8',\r\n },\r\n matchText: {\r\n backgroundColor: 'rgba(245, 158, 11, 0.3)',\r\n color: '#111827',\r\n fontWeight: '700',\r\n },\r\n matchTextDark: {\r\n backgroundColor: 'rgba(245, 158, 11, 0.25)',\r\n color: '#fde68a',\r\n },\r\n matchTextActive: {\r\n backgroundColor: 'rgba(59, 130, 246, 0.35)',\r\n color: '#1d4ed8',\r\n },\r\n noteCard: {\r\n padding: 12,\r\n borderRadius: 12,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n marginBottom: 12,\r\n },\r\n noteCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n noteHeader: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginBottom: 6,\r\n },\r\n noteDot: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: 4,\r\n marginRight: 6,\r\n },\r\n noteTitle: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n noteTitleDark: {\r\n color: '#e5e7eb',\r\n },\r\n noteType: {\r\n fontSize: 10,\r\n fontWeight: '800',\r\n color: '#2563eb',\r\n },\r\n noteTypeDark: {\r\n color: '#60a5fa',\r\n },\r\n noteContent: {\r\n marginTop: 6,\r\n fontSize: 11,\r\n color: '#4b5563',\r\n },\r\n noteContentDark: {\r\n color: '#9ca3af',\r\n },\r\n});\r\n\r\nexport default RightSheet;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Modal, View, Text, TextInput, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\n\r\nconst AnnotationEditor: React.FC = () => {\r\n const { annotations, selectedAnnotationId, updateAnnotation, setSelectedAnnotation, uiTheme, locale, accentColor } =\r\n useViewerStore();\r\n const annotation = annotations.find((ann) => ann.id === selectedAnnotationId);\r\n const isEditable = annotation && (annotation.type === 'text' || annotation.type === 'comment');\r\n const [draft, setDraft] = useState('');\r\n const isDark = uiTheme === 'dark';\r\n const t = getStrings(locale);\r\n\r\n useEffect(() => {\r\n if (isEditable) {\r\n setDraft(annotation?.content ?? '');\r\n }\r\n }, [annotation?.id, isEditable]);\r\n\r\n if (!isEditable || !annotation) return null;\r\n\r\n const handleClose = () => setSelectedAnnotation(null);\r\n const handleSave = () => {\r\n updateAnnotation(annotation.id, { content: draft });\r\n setSelectedAnnotation(null);\r\n };\r\n\r\n return (\r\n <Modal visible transparent animationType=\"fade\" onRequestClose={handleClose}>\r\n <View style={styles.overlay}>\r\n <View style={[styles.card, isDark && styles.cardDark]}>\r\n <Text style={[styles.title, isDark && styles.titleDark]}>{t.editNote}</Text>\r\n <TextInput\r\n style={[styles.input, isDark && styles.inputDark]}\r\n value={draft}\r\n onChangeText={setDraft}\r\n placeholder={t.notePlaceholder}\r\n placeholderTextColor={isDark ? '#9ca3af' : '#6b7280'}\r\n multiline\r\n />\r\n <View style={styles.actions}>\r\n <Pressable onPress={handleClose} style={[styles.actionButton, styles.actionCancel]}>\r\n <Text style={styles.actionText}>{t.cancel}</Text>\r\n </Pressable>\r\n <Pressable onPress={handleSave} style={[styles.actionButton, styles.actionSave, { backgroundColor: accentColor }]}>\r\n <Text style={[styles.actionText, styles.actionTextLight]}>{t.save}</Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n overlay: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\r\n padding: 24,\r\n },\r\n card: {\r\n width: '100%',\r\n borderRadius: 16,\r\n padding: 16,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n cardDark: {\r\n backgroundColor: '#0f1115',\r\n borderColor: '#1f2937',\r\n },\r\n title: {\r\n fontSize: 14,\r\n fontWeight: '700',\r\n color: '#111827',\r\n marginBottom: 12,\r\n },\r\n titleDark: {\r\n color: '#f9fafb',\r\n },\r\n input: {\r\n minHeight: 100,\r\n borderRadius: 12,\r\n padding: 12,\r\n backgroundColor: '#f3f4f6',\r\n color: '#111827',\r\n fontSize: 12,\r\n },\r\n inputDark: {\r\n backgroundColor: '#111827',\r\n color: '#e5e7eb',\r\n },\r\n actions: {\r\n marginTop: 16,\r\n flexDirection: 'row',\r\n justifyContent: 'flex-end',\r\n },\r\n actionButton: {\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderRadius: 8,\r\n marginLeft: 8,\r\n },\r\n actionCancel: {\r\n backgroundColor: '#e5e7eb',\r\n },\r\n actionSave: {\r\n backgroundColor: '#2563eb',\r\n },\r\n actionText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n actionTextLight: {\r\n color: '#ffffff',\r\n },\r\n});\r\n\r\nexport default AnnotationEditor;\r\n","import React from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\nimport { IconDocument, IconGrid, IconSearch, IconComment } from '../icons';\r\n\r\nconst BottomBar: React.FC = () => {\r\n const { sidebarRightOpen, sidebarRightTab, toggleSidebarRight, setDocumentState, uiTheme, locale, accentColor } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const t = getStrings(locale);\r\n\r\n const isActive = (tab: 'pages' | 'search' | 'annotations') =>\r\n sidebarRightOpen && sidebarRightTab === tab;\r\n\r\n const iconColor = (active: boolean) => {\r\n if (active) return '#ffffff';\r\n return isDark ? '#e5e7eb' : '#111827';\r\n };\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <Pressable\r\n onPress={() => toggleSidebarRight('pages')}\r\n style={[styles.item, isActive('pages') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('pages') && styles.itemIconActive,\r\n isActive('pages') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconGrid size={16} color={iconColor(isActive('pages'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('pages') && styles.itemLabelActive,\r\n isActive('pages') && { color: accentColor },\r\n ]}\r\n >\r\n {t.pages}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => toggleSidebarRight('search')}\r\n style={[styles.item, isActive('search') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('search') && styles.itemIconActive,\r\n isActive('search') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconSearch size={16} color={iconColor(isActive('search'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('search') && styles.itemLabelActive,\r\n isActive('search') && { color: accentColor },\r\n ]}\r\n >\r\n {t.search}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => setDocumentState({ sidebarRightOpen: false })}\r\n style={[styles.item, !sidebarRightOpen && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n !sidebarRightOpen && styles.itemIconActive,\r\n !sidebarRightOpen && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconDocument size={16} color={iconColor(!sidebarRightOpen)} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n !sidebarRightOpen && styles.itemLabelActive,\r\n !sidebarRightOpen && { color: accentColor },\r\n ]}\r\n >\r\n {t.read}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => toggleSidebarRight('annotations')}\r\n style={[styles.item, isActive('annotations') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('annotations') && styles.itemIconActive,\r\n isActive('annotations') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconComment size={16} color={iconColor(isActive('annotations'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('annotations') && styles.itemLabelActive,\r\n isActive('annotations') && { color: accentColor },\r\n ]}\r\n >\r\n {t.notes}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n paddingVertical: 10,\r\n paddingHorizontal: 12,\r\n backgroundColor: '#ffffff',\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n item: {\r\n alignItems: 'center',\r\n paddingHorizontal: 6,\r\n },\r\n itemActive: {\r\n transform: [{ translateY: -2 }],\r\n },\r\n itemIcon: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#e5e7eb',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginBottom: 4,\r\n },\r\n itemIconDark: {\r\n backgroundColor: '#111827',\r\n color: '#e5e7eb',\r\n },\r\n itemIconActive: {\r\n backgroundColor: '#2563eb',\r\n color: '#ffffff',\r\n },\r\n itemLabel: {\r\n fontSize: 10,\r\n fontWeight: '700',\r\n color: '#6b7280',\r\n },\r\n itemLabelDark: {\r\n color: '#9ca3af',\r\n },\r\n itemLabelActive: {\r\n color: '#2563eb',\r\n },\r\n});\r\n\r\nexport default BottomBar;\r\n","import React from 'react';\r\nimport { Modal, View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\nimport { getStrings } from '../strings';\r\nimport { IconZoomIn, IconZoomOut } from '../icons';\r\n\r\ninterface SettingsSheetProps {\r\n engine: DocumentEngine;\r\n visible: boolean;\r\n onClose: () => void;\r\n}\r\n\r\nconst SettingsSheet: React.FC<SettingsSheetProps> = ({ engine, visible, onClose }) => {\r\n const { viewMode, uiTheme, zoom, setDocumentState, locale, accentColor, pageTheme } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const isPaged = viewMode === 'single';\r\n const isDouble = viewMode === 'double';\r\n const t = getStrings(locale);\r\n\r\n const handleTransition = (mode: 'continuous' | 'paged') => {\r\n if (mode === 'paged') {\r\n setDocumentState({ viewMode: 'single' });\r\n return;\r\n }\r\n setDocumentState({ viewMode: isDouble ? 'double' : 'continuous' });\r\n };\r\n\r\n const handleLayout = (layout: 'single' | 'double') => {\r\n if (layout === 'double') {\r\n setDocumentState({ viewMode: 'double' });\r\n return;\r\n }\r\n if (viewMode === 'double') {\r\n setDocumentState({ viewMode: 'continuous' });\r\n }\r\n };\r\n\r\n const handleRotate = (direction: 'clockwise' | 'counterclockwise') => {\r\n engine.rotate(direction);\r\n setDocumentState({ rotation: engine.getRotation() });\r\n };\r\n\r\n const handleZoom = (delta: number) => {\r\n const next = Math.max(0.5, Math.min(4, zoom + delta));\r\n engine.setZoom(next);\r\n setDocumentState({ zoom: next });\r\n };\r\n\r\n if (!visible) return null;\r\n\r\n return (\r\n <Modal visible transparent animationType=\"slide\" onRequestClose={onClose}>\r\n <View style={styles.modalRoot}>\r\n <Pressable style={styles.backdrop} onPress={onClose} />\r\n <View style={[styles.sheet, isDark && styles.sheetDark]}>\r\n <View style={[styles.handle, isDark && styles.handleDark]} />\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.appearance}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ uiTheme: 'light' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n uiTheme === 'light' && styles.optionButtonActive,\r\n uiTheme === 'light' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n uiTheme === 'light' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.light}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ uiTheme: 'dark' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n uiTheme === 'dark' && styles.optionButtonActive,\r\n uiTheme === 'dark' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n uiTheme === 'dark' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.dark}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.pageTheme}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'normal' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'normal' && styles.optionButtonActive,\r\n pageTheme === 'normal' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'normal' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeOriginal}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'sepia' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'sepia' && styles.optionButtonActive,\r\n pageTheme === 'sepia' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'sepia' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeSepia}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'dark' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'dark' && styles.optionButtonActive,\r\n pageTheme === 'dark' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'dark' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeDark}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'high-contrast' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'high-contrast' && styles.optionButtonActive,\r\n pageTheme === 'high-contrast' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'high-contrast' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeContrast}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.pageTransition}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleTransition('continuous')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n (!isPaged || isDouble) && styles.optionButtonActive,\r\n (!isPaged || isDouble) && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n (!isPaged || isDouble) && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.continuous}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleTransition('paged')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n isPaged && styles.optionButtonActive,\r\n isPaged && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n isPaged && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.pageByPage}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.layout}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleLayout('single')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n !isDouble && styles.optionButtonActive,\r\n !isDouble && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n !isDouble && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.singlePage}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleLayout('double')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n isDouble && styles.optionButtonActive,\r\n isDouble && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n isDouble && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.doublePage}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.rotate}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleRotate('counterclockwise')}\r\n style={[styles.optionButton, isDark && styles.optionButtonDark]}\r\n >\r\n <Text style={[styles.optionText, isDark && styles.optionTextDark]}>{t.counterclockwise}</Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleRotate('clockwise')}\r\n style={[styles.optionButton, isDark && styles.optionButtonDark]}\r\n >\r\n <Text style={[styles.optionText, isDark && styles.optionTextDark]}>{t.clockwise}</Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.zoom}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable onPress={() => handleZoom(-0.1)} style={[styles.optionButton, isDark && styles.optionButtonDark]}>\r\n <IconZoomOut size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n <View style={styles.zoomValue}>\r\n <Text style={[styles.zoomText, isDark && styles.zoomTextDark]}>\r\n {Math.round(zoom * 100)}%\r\n </Text>\r\n </View>\r\n <Pressable onPress={() => handleZoom(0.1)} style={[styles.optionButton, isDark && styles.optionButtonDark]}>\r\n <IconZoomIn size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.language}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ locale: 'en' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n locale === 'en' && styles.optionButtonActive,\r\n locale === 'en' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n locale === 'en' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.english}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ locale: 'pt-BR' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n locale === 'pt-BR' && styles.optionButtonActive,\r\n locale === 'pt-BR' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n locale === 'pt-BR' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.portuguese}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalRoot: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n backdrop: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: 'rgba(0, 0, 0, 0.45)',\r\n },\r\n sheet: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n paddingHorizontal: 18,\r\n paddingBottom: 24,\r\n backgroundColor: '#ffffff',\r\n borderTopLeftRadius: 24,\r\n borderTopRightRadius: 24,\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n },\r\n sheetDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n handle: {\r\n width: 44,\r\n height: 4,\r\n borderRadius: 999,\r\n backgroundColor: '#cbd5f5',\r\n alignSelf: 'center',\r\n marginTop: 10,\r\n marginBottom: 12,\r\n },\r\n handleDark: {\r\n backgroundColor: '#374151',\r\n },\r\n section: {\r\n marginBottom: 16,\r\n },\r\n sectionTitle: {\r\n fontSize: 12,\r\n fontWeight: '800',\r\n color: '#111827',\r\n marginBottom: 8,\r\n },\r\n sectionTitleDark: {\r\n color: '#e5e7eb',\r\n },\r\n optionRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n optionButton: {\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderRadius: 12,\r\n backgroundColor: '#e5e7eb',\r\n marginRight: 8,\r\n marginBottom: 8,\r\n },\r\n optionButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n optionButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n optionText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n optionTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n optionTextActive: {\r\n color: '#ffffff',\r\n },\r\n zoomValue: {\r\n minWidth: 52,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n zoomText: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n zoomTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n});\r\n\r\nexport default SettingsSheet;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport {\n ActivityIndicator,\n StyleSheet,\n Text,\n UIManager,\n View,\n findNodeHandle,\n type LayoutChangeEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\nimport { DocumentSource, DocumentType } from '@papyrus-sdk/types';\nimport { MobileDocumentEngine, PapyrusPageView } from '@papyrus-sdk/engine-native';\nimport WebViewViewer from './WebViewViewer';\n\ntype CoverPreviewProps = {\n source: DocumentSource;\n type?: DocumentType;\n pageIndex?: number;\n visible?: boolean;\n keepAlive?: boolean;\n allowInteraction?: boolean;\n renderScale?: number;\n showLoading?: boolean;\n loadingIndicator?: React.ReactNode;\n placeholder?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n onLoadStart?: () => void;\n onLoadEnd?: () => void;\n onError?: (error: Error) => void;\n};\n\nconst parseDataUri = (value: string): { mime: string } | null => {\n const match = /^data:([^;,]+)?(;base64)?,/.exec(value);\n if (!match) return null;\n return { mime: match[1] ?? '' };\n};\n\nconst inferDocumentType = (source: DocumentSource, explicitType?: DocumentType): DocumentType => {\n if (explicitType) return explicitType;\n if (typeof source === 'string') {\n const dataUri = parseDataUri(source);\n if (dataUri?.mime) {\n const mime = dataUri.mime.toLowerCase();\n if (mime.includes('epub')) return 'epub';\n if (mime.includes('text')) return 'text';\n if (mime.includes('pdf')) return 'pdf';\n }\n const clean = source.split('?')[0].split('#')[0];\n const ext = clean.includes('.') ? clean.split('.').pop()?.toLowerCase() : undefined;\n if (ext === 'epub') return 'epub';\n if (ext === 'txt') return 'text';\n if (ext === 'pdf') return 'pdf';\n return 'pdf';\n }\n if (typeof source === 'object' && source !== null && 'uri' in source) {\n const clean = source.uri.split('?')[0].split('#')[0];\n const ext = clean.includes('.') ? clean.split('.').pop()?.toLowerCase() : undefined;\n if (ext === 'epub') return 'epub';\n if (ext === 'txt') return 'text';\n if (ext === 'pdf') return 'pdf';\n }\n return 'pdf';\n};\n\nconst CoverPreview: React.FC<CoverPreviewProps> = ({\n source,\n type,\n pageIndex = 0,\n visible = true,\n keepAlive = false,\n allowInteraction = false,\n renderScale = 2,\n showLoading = true,\n loadingIndicator,\n placeholder,\n style,\n onLoadStart,\n onLoadEnd,\n onError,\n}) => {\n const [engine, setEngine] = useState<MobileDocumentEngine | null>(null);\n const [layoutReady, setLayoutReady] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const viewRef = useRef<any>(null);\n\n const resolvedType = useMemo(() => inferDocumentType(source, type), [source, type]);\n const isPdf = resolvedType === 'pdf';\n const hasNativePageView = Boolean(UIManager.getViewManagerConfig?.('PapyrusPageView'));\n const canRender = !isPdf || hasNativePageView;\n const shouldRender = Boolean(visible);\n\n useEffect(() => {\n if (!shouldRender) {\n if (!keepAlive) {\n setEngine(null);\n setLoaded(false);\n setError(null);\n }\n return;\n }\n if (!engine && canRender) {\n setEngine(new MobileDocumentEngine());\n }\n }, [shouldRender, keepAlive, engine, canRender]);\n\n useEffect(() => {\n if (!engine || !shouldRender || !canRender) return;\n let active = true;\n setLoading(true);\n setLoaded(false);\n setError(null);\n onLoadStart?.();\n const loadInput = type ? { type, source } : source;\n engine\n .load(loadInput)\n .then(() => {\n if (!active) return;\n if (!isPdf && pageIndex > 0) {\n engine.goToPage(pageIndex + 1);\n }\n setLoaded(true);\n setLoading(false);\n onLoadEnd?.();\n })\n .catch((err) => {\n if (!active) return;\n const errorValue = err instanceof Error ? err : new Error('[Papyrus] Failed to load document');\n setError(errorValue);\n setLoading(false);\n onError?.(errorValue);\n });\n return () => {\n active = false;\n };\n }, [engine, shouldRender, canRender, source, type, pageIndex, isPdf, onLoadStart, onLoadEnd, onError]);\n\n useEffect(() => {\n if (!engine || !isPdf || !loaded || !layoutReady || !shouldRender || !canRender) return;\n const viewTag = findNodeHandle(viewRef.current);\n if (!viewTag) return;\n engine.renderPage(pageIndex, viewTag, renderScale);\n }, [engine, isPdf, loaded, layoutReady, shouldRender, canRender, pageIndex, renderScale]);\n\n useEffect(() => {\n return () => {\n engine?.destroy();\n };\n }, [engine]);\n\n const handleLayout = (event: LayoutChangeEvent) => {\n const { width, height } = event.nativeEvent.layout;\n if (width > 0 && height > 0) {\n setLayoutReady(true);\n }\n };\n\n if (!shouldRender || !canRender) {\n return (\n <View style={[styles.container, style]}>\n {placeholder ?? (\n <View style={styles.placeholder}>\n <Text style={styles.placeholderText}>Preview</Text>\n </View>\n )}\n </View>\n );\n }\n\n return (\n <View style={[styles.container, style]} onLayout={handleLayout}>\n <View style={styles.previewFrame} pointerEvents={allowInteraction ? 'auto' : 'none'}>\n {isPdf ? (\n <PapyrusPageView ref={viewRef} style={styles.pageView} />\n ) : (\n engine && <WebViewViewer engine={engine} />\n )}\n </View>\n {showLoading && loading && (\n <View pointerEvents=\"none\" style={styles.loadingOverlay}>\n {loadingIndicator ?? <ActivityIndicator size=\"small\" color=\"#2563eb\" />}\n </View>\n )}\n {error && (\n <View pointerEvents=\"none\" style={styles.errorOverlay}>\n <Text style={styles.errorText}>Preview unavailable</Text>\n </View>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#f8fafc',\n borderRadius: 12,\n overflow: 'hidden',\n },\n previewFrame: {\n flex: 1,\n backgroundColor: '#ffffff',\n },\n pageView: {\n width: '100%',\n height: '100%',\n backgroundColor: 'transparent',\n },\n loadingOverlay: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(15, 23, 42, 0.15)',\n },\n errorOverlay: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(15, 23, 42, 0.4)',\n },\n errorText: {\n fontSize: 12,\n fontWeight: '600',\n color: '#f8fafc',\n },\n placeholder: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#e2e8f0',\n },\n placeholderText: {\n fontSize: 12,\n fontWeight: '600',\n color: '#475569',\n },\n});\n\nexport default CoverPreview;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,uBAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":["exports","module","import_react","import_react_native","import_core","scale","import_react","import_react_native","import_core","import_jsx_runtime","styles","WebView","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_jsx_runtime","Svg","Svg","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_engine_native","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react","import_react_native","import_engine_native","import_jsx_runtime","styles"]}
|
|
1
|
+
{"version":3,"sources":["../runtime/index.html","../index.ts","../components/Viewer.tsx","../components/PageRenderer.tsx","../components/WebViewViewer.tsx","../components/Topbar.tsx","../icons.tsx","../components/ToolDock.tsx","../strings.ts","../components/RightSheet.tsx","../components/AnnotationEditor.tsx","../components/BottomBar.tsx","../components/SettingsSheet.tsx","../components/CoverPreview.tsx"],"sourcesContent":["<!DOCTYPE html>\r\n<html lang=\"en\">\r\n <head>\r\n <meta charset=\"utf-8\" />\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\r\n <title>Papyrus Mobile Runtime</title>\r\n <style>\r\n html,\r\n body {\r\n width: 100%;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n background: #ffffff;\r\n overflow: hidden;\r\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n #viewer {\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n overflow: hidden;\r\n background: #ffffff;\r\n }\r\n </style>\r\n </head>\r\n <body>\r\n <div id=\"viewer\"></div>\r\n <script>\r\n/*!\r\n\r\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\r\n<http://stuartk.com/jszip>\r\n\r\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\r\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\r\n\r\nJSZip uses the library pako released under the MIT license :\r\nhttps://github.com/nodeca/pako/blob/main/LICENSE\r\n*/\r\n\r\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});\r\n</script>\r\n<script>\r\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"JSZip\")):\"function\"==typeof define&&define.amd?define([\"JSZip\"],e):\"object\"==typeof exports?exports.ePub=e(require(\"JSZip\")):t.ePub=e(t.JSZip)}(window,(function(t){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\"a\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\"/dist/\",i(i.s=30)}([function(t,e,i){\"use strict\";i.r(e),i.d(e,\"requestAnimationFrame\",(function(){return s})),i.d(e,\"uuid\",(function(){return o})),i.d(e,\"documentHeight\",(function(){return a})),i.d(e,\"isElement\",(function(){return h})),i.d(e,\"isNumber\",(function(){return l})),i.d(e,\"isFloat\",(function(){return c})),i.d(e,\"prefixed\",(function(){return u})),i.d(e,\"defaults\",(function(){return d})),i.d(e,\"extend\",(function(){return f})),i.d(e,\"insert\",(function(){return p})),i.d(e,\"locationOf\",(function(){return g})),i.d(e,\"indexOfSorted\",(function(){return m})),i.d(e,\"bounds\",(function(){return v})),i.d(e,\"borders\",(function(){return y})),i.d(e,\"nodeBounds\",(function(){return b})),i.d(e,\"windowBounds\",(function(){return w})),i.d(e,\"indexOfNode\",(function(){return x})),i.d(e,\"indexOfTextNode\",(function(){return E})),i.d(e,\"indexOfElementNode\",(function(){return S})),i.d(e,\"isXml\",(function(){return N})),i.d(e,\"createBlob\",(function(){return _})),i.d(e,\"createBlobUrl\",(function(){return T})),i.d(e,\"revokeBlobUrl\",(function(){return C})),i.d(e,\"createBase64Url\",(function(){return O})),i.d(e,\"type\",(function(){return I})),i.d(e,\"parse\",(function(){return R})),i.d(e,\"qs\",(function(){return k})),i.d(e,\"qsa\",(function(){return A})),i.d(e,\"qsp\",(function(){return L})),i.d(e,\"sprint\",(function(){return j})),i.d(e,\"treeWalker\",(function(){return D})),i.d(e,\"walk\",(function(){return P})),i.d(e,\"blob2base64\",(function(){return M})),i.d(e,\"defer\",(function(){return z})),i.d(e,\"querySelectorByType\",(function(){return B})),i.d(e,\"findChildren\",(function(){return q})),i.d(e,\"parents\",(function(){return F})),i.d(e,\"filterChildren\",(function(){return U})),i.d(e,\"getParentByTagName\",(function(){return W})),i.d(e,\"RangeObject\",(function(){return H}));var n=i(15);const s=\"undefined\"!=typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),r=\"undefined\"!=typeof URL?URL:\"undefined\"!=typeof window?window.URL||window.webkitURL||window.mozURL:void 0;function o(){var t=(new Date).getTime();return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(function(e){var i=(t+16*Math.random())%16|0;return t=Math.floor(t/16),(\"x\"==e?i:7&i|8).toString(16)}))}function a(){return Math.max(document.documentElement.clientHeight,document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight)}function h(t){return!(!t||1!=t.nodeType)}function l(t){return!isNaN(parseFloat(t))&&isFinite(t)}function c(t){let e=parseFloat(t);return!1!==l(t)&&(\"string\"==typeof t&&t.indexOf(\".\")>-1||Math.floor(e)!==e)}function u(t){var e=[\"-webkit-\",\"-webkit-\",\"-moz-\",\"-o-\",\"-ms-\"],i=t.toLowerCase(),n=[\"Webkit\",\"webkit\",\"Moz\",\"O\",\"ms\"].length;if(\"undefined\"==typeof document||void 0!==document.body.style[i])return t;for(var s=0;s<n;s++)if(void 0!==document.body.style[e[s]+i])return e[s]+i;return t}function d(t){for(var e=1,i=arguments.length;e<i;e++){var n=arguments[e];for(var s in n)void 0===t[s]&&(t[s]=n[s])}return t}function f(t){var e=[].slice.call(arguments,1);return e.forEach((function(e){e&&Object.getOwnPropertyNames(e).forEach((function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(e,i))}))})),t}function p(t,e,i){var n=g(t,e,i);return e.splice(n,0,t),n}function g(t,e,i,n,s){var r,o=n||0,a=s||e.length,h=parseInt(o+(a-o)/2);return i||(i=function(t,e){return t>e?1:t<e?-1:t==e?0:void 0}),a-o<=0?h:(r=i(e[h],t),a-o==1?r>=0?h:h+1:0===r?h:-1===r?g(t,e,i,h,a):g(t,e,i,o,h))}function m(t,e,i,n,s){var r,o=n||0,a=s||e.length,h=parseInt(o+(a-o)/2);return i||(i=function(t,e){return t>e?1:t<e?-1:t==e?0:void 0}),a-o<=0?-1:(r=i(e[h],t),a-o==1?0===r?h:-1:0===r?h:-1===r?m(t,e,i,h,a):m(t,e,i,o,h))}function v(t){var e=window.getComputedStyle(t),i=0,n=0;return[\"width\",\"paddingRight\",\"paddingLeft\",\"marginRight\",\"marginLeft\",\"borderRightWidth\",\"borderLeftWidth\"].forEach((function(t){i+=parseFloat(e[t])||0})),[\"height\",\"paddingTop\",\"paddingBottom\",\"marginTop\",\"marginBottom\",\"borderTopWidth\",\"borderBottomWidth\"].forEach((function(t){n+=parseFloat(e[t])||0})),{height:n,width:i}}function y(t){var e=window.getComputedStyle(t),i=0,n=0;return[\"paddingRight\",\"paddingLeft\",\"marginRight\",\"marginLeft\",\"borderRightWidth\",\"borderLeftWidth\"].forEach((function(t){i+=parseFloat(e[t])||0})),[\"paddingTop\",\"paddingBottom\",\"marginTop\",\"marginBottom\",\"borderTopWidth\",\"borderBottomWidth\"].forEach((function(t){n+=parseFloat(e[t])||0})),{height:n,width:i}}function b(t){let e,i=t.ownerDocument;if(t.nodeType==Node.TEXT_NODE){let n=i.createRange();n.selectNodeContents(t),e=n.getBoundingClientRect()}else e=t.getBoundingClientRect();return e}function w(){var t=window.innerWidth,e=window.innerHeight;return{top:0,left:0,right:t,bottom:e,width:t,height:e}}function x(t,e){for(var i,n=t.parentNode.childNodes,s=-1,r=0;r<n.length&&((i=n[r]).nodeType===e&&s++,i!=t);r++);return s}function E(t){return x(t,3)}function S(t){return x(t,1)}function N(t){return[\"xml\",\"opf\",\"ncx\"].indexOf(t)>-1}function _(t,e){return new Blob([t],{type:e})}function T(t,e){var i=_(t,e);return r.createObjectURL(i)}function C(t){return r.revokeObjectURL(t)}function O(t,e){if(\"string\"==typeof t)return\"data:\"+e+\";base64,\"+btoa(t)}function I(t){return Object.prototype.toString.call(t).slice(8,-1)}function R(t,e,i){var s;return s=\"undefined\"==typeof DOMParser||i?n.DOMParser:DOMParser,65279===t.charCodeAt(0)&&(t=t.slice(1)),(new s).parseFromString(t,e)}function k(t,e){var i;if(!t)throw new Error(\"No Element Provided\");return void 0!==t.querySelector?t.querySelector(e):(i=t.getElementsByTagName(e)).length?i[0]:void 0}function A(t,e){return void 0!==t.querySelector?t.querySelectorAll(e):t.getElementsByTagName(e)}function L(t,e,i){var n,s;if(void 0!==t.querySelector){for(var r in e+=\"[\",i)e+=r+\"~='\"+i[r]+\"'\";return e+=\"]\",t.querySelector(e)}if(n=t.getElementsByTagName(e),s=Array.prototype.slice.call(n,0).filter((function(t){for(var e in i)if(t.getAttribute(e)===i[e])return!0;return!1})))return s[0]}function j(t,e){void 0!==(t.ownerDocument||t).createTreeWalker?D(t,e,NodeFilter.SHOW_TEXT):P(t,(function(t){t&&3===t.nodeType&&e(t)}))}function D(t,e,i){var n=document.createTreeWalker(t,i,null,!1);let s;for(;s=n.nextNode();)e(s)}function P(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(P(t,e))return!0;t=t.nextSibling}while(t)}function M(t){return new Promise((function(e,i){var n=new FileReader;n.readAsDataURL(t),n.onloadend=function(){e(n.result)}}))}function z(){this.resolve=null,this.reject=null,this.id=o(),this.promise=new Promise((t,e)=>{this.resolve=t,this.reject=e}),Object.freeze(this)}function B(t,e,i){var n;if(void 0!==t.querySelector&&(n=t.querySelector(`${e}[*|type=\"${i}\"]`)),n&&0!==n.length)return n;n=A(t,e);for(var s=0;s<n.length;s++)if(n[s].getAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\")===i||n[s].getAttribute(\"epub:type\")===i)return n[s]}function q(t){for(var e=[],i=t.childNodes,n=0;n<i.length;n++){let t=i[n];1===t.nodeType&&e.push(t)}return e}function F(t){for(var e=[t];t;t=t.parentNode)e.unshift(t);return e}function U(t,e,i){for(var n=[],s=t.childNodes,r=0;r<s.length;r++){let t=s[r];if(1===t.nodeType&&t.nodeName.toLowerCase()===e){if(i)return t;n.push(t)}}if(!i)return n}function W(t,e){let i;if(null!==t&&\"\"!==e)for(i=t.parentNode;1===i.nodeType;){if(i.tagName.toLowerCase()===e)return i;i=i.parentNode}}class H{constructor(){this.collapsed=!1,this.commonAncestorContainer=void 0,this.endContainer=void 0,this.endOffset=void 0,this.startContainer=void 0,this.startOffset=void 0}setStart(t,e){this.startContainer=t,this.startOffset=e,this.endContainer?this.commonAncestorContainer=this._commonAncestorContainer():this.collapse(!0),this._checkCollapsed()}setEnd(t,e){this.endContainer=t,this.endOffset=e,this.startContainer?(this.collapsed=!1,this.commonAncestorContainer=this._commonAncestorContainer()):this.collapse(!1),this._checkCollapsed()}collapse(t){this.collapsed=!0,t?(this.endContainer=this.startContainer,this.endOffset=this.startOffset,this.commonAncestorContainer=this.startContainer.parentNode):(this.startContainer=this.endContainer,this.startOffset=this.endOffset,this.commonAncestorContainer=this.endOffset.parentNode)}selectNode(t){let e=t.parentNode,i=Array.prototype.indexOf.call(e.childNodes,t);this.setStart(e,i),this.setEnd(e,i+1)}selectNodeContents(t){t.childNodes[t.childNodes-1];let e=3===t.nodeType?t.textContent.length:parent.childNodes.length;this.setStart(t,0),this.setEnd(t,e)}_commonAncestorContainer(t,e){var i=F(t||this.startContainer),n=F(e||this.endContainer);if(i[0]==n[0])for(var s=0;s<i.length;s++)if(i[s]!=n[s])return i[s-1]}_checkCollapsed(){this.startContainer===this.endContainer&&this.startOffset===this.endOffset?this.collapsed=!0:this.collapsed=!1}toString(){}}},function(t,e,i){\"use strict\";i.d(e,\"b\",(function(){return n})),i.d(e,\"a\",(function(){return s})),i.d(e,\"c\",(function(){return r}));const n=\"0.3\",s=[\"keydown\",\"keyup\",\"keypressed\",\"mouseup\",\"mousedown\",\"mousemove\",\"click\",\"touchend\",\"touchstart\",\"touchmove\"],r={BOOK:{OPEN_FAILED:\"openFailed\"},CONTENTS:{EXPAND:\"expand\",RESIZE:\"resize\",SELECTED:\"selected\",SELECTED_RANGE:\"selectedRange\",LINK_CLICKED:\"linkClicked\"},LOCATIONS:{CHANGED:\"changed\"},MANAGERS:{RESIZE:\"resize\",RESIZED:\"resized\",ORIENTATION_CHANGE:\"orientationchange\",ADDED:\"added\",SCROLL:\"scroll\",SCROLLED:\"scrolled\",REMOVED:\"removed\"},VIEWS:{AXIS:\"axis\",WRITING_MODE:\"writingMode\",LOAD_ERROR:\"loaderror\",RENDERED:\"rendered\",RESIZED:\"resized\",DISPLAYED:\"displayed\",SHOWN:\"shown\",HIDDEN:\"hidden\",MARK_CLICKED:\"markClicked\"},RENDITION:{STARTED:\"started\",ATTACHED:\"attached\",DISPLAYED:\"displayed\",DISPLAY_ERROR:\"displayerror\",RENDERED:\"rendered\",REMOVED:\"removed\",RESIZED:\"resized\",ORIENTATION_CHANGE:\"orientationchange\",LOCATION_CHANGED:\"locationChanged\",RELOCATED:\"relocated\",MARK_CLICKED:\"markClicked\",SELECTED:\"selected\",LAYOUT:\"layout\"},LAYOUT:{UPDATED:\"updated\"},ANNOTATION:{ATTACH:\"attach\",DETACH:\"detach\"}}},function(t,e,i){\"use strict\";var n=i(0);class s{constructor(t,e,i){var r;if(this.str=\"\",this.base={},this.spinePos=0,this.range=!1,this.path={},this.start=null,this.end=null,!(this instanceof s))return new s(t,e,i);if(\"string\"==typeof e?this.base=this.parseComponent(e):\"object\"==typeof e&&e.steps&&(this.base=e),\"string\"===(r=this.checkType(t)))return this.str=t,Object(n.extend)(this,this.parse(t));if(\"range\"===r)return Object(n.extend)(this,this.fromRange(t,this.base,i));if(\"node\"===r)return Object(n.extend)(this,this.fromNode(t,this.base,i));if(\"EpubCFI\"===r&&t.path)return t;if(t)throw new TypeError(\"not a valid argument for EpubCFI\");return this}checkType(t){return this.isCfiString(t)?\"string\":!t||\"object\"!=typeof t||\"Range\"!==Object(n.type)(t)&&void 0===t.startContainer?t&&\"object\"==typeof t&&void 0!==t.nodeType?\"node\":!!(t&&\"object\"==typeof t&&t instanceof s)&&\"EpubCFI\":\"range\"}parse(t){var e,i,n,s={spinePos:-1,range:!1,base:{},path:{},start:null,end:null};return\"string\"!=typeof t?{spinePos:-1}:(0===t.indexOf(\"epubcfi(\")&&\")\"===t[t.length-1]&&(t=t.slice(8,t.length-1)),(e=this.getChapterComponent(t))?(s.base=this.parseComponent(e),i=this.getPathComponent(t),s.path=this.parseComponent(i),(n=this.getRange(t))&&(s.range=!0,s.start=this.parseComponent(n[0]),s.end=this.parseComponent(n[1])),s.spinePos=s.base.steps[1].index,s):{spinePos:-1})}parseComponent(t){var e,i={steps:[],terminal:{offset:null,assertion:null}},n=t.split(\":\"),s=n[0].split(\"/\");return n.length>1&&(e=n[1],i.terminal=this.parseTerminal(e)),\"\"===s[0]&&s.shift(),i.steps=s.map(function(t){return this.parseStep(t)}.bind(this)),i}parseStep(t){var e,i,n,s,r;if((s=t.match(/\\[(.*)\\]/))&&s[1]&&(r=s[1]),i=parseInt(t),!isNaN(i))return i%2==0?(e=\"element\",n=i/2-1):(e=\"text\",n=(i-1)/2),{type:e,index:n,id:r||null}}parseTerminal(t){var e,i,s=t.match(/\\[(.*)\\]/);return s&&s[1]?(e=parseInt(t.split(\"[\")[0]),i=s[1]):e=parseInt(t),Object(n.isNumber)(e)||(e=null),{offset:e,assertion:i}}getChapterComponent(t){return t.split(\"!\")[0]}getPathComponent(t){var e=t.split(\"!\");if(e[1]){return e[1].split(\",\")[0]}}getRange(t){var e=t.split(\",\");return 3===e.length&&[e[1],e[2]]}getCharecterOffsetComponent(t){return t.split(\":\")[1]||\"\"}joinSteps(t){return t?t.map((function(t){var e=\"\";return\"element\"===t.type&&(e+=2*(t.index+1)),\"text\"===t.type&&(e+=1+2*t.index),t.id&&(e+=\"[\"+t.id+\"]\"),e})).join(\"/\"):\"\"}segmentString(t){var e=\"/\";return e+=this.joinSteps(t.steps),t.terminal&&null!=t.terminal.offset&&(e+=\":\"+t.terminal.offset),t.terminal&&null!=t.terminal.assertion&&(e+=\"[\"+t.terminal.assertion+\"]\"),e}toString(){var t=\"epubcfi(\";return t+=this.segmentString(this.base),t+=\"!\",t+=this.segmentString(this.path),this.range&&this.start&&(t+=\",\",t+=this.segmentString(this.start)),this.range&&this.end&&(t+=\",\",t+=this.segmentString(this.end)),t+=\")\"}compare(t,e){var i,n,r,o;if(\"string\"==typeof t&&(t=new s(t)),\"string\"==typeof e&&(e=new s(e)),t.spinePos>e.spinePos)return 1;if(t.spinePos<e.spinePos)return-1;t.range?(i=t.path.steps.concat(t.start.steps),r=t.start.terminal):(i=t.path.steps,r=t.path.terminal),e.range?(n=e.path.steps.concat(e.start.steps),o=e.start.terminal):(n=e.path.steps,o=e.path.terminal);for(var a=0;a<i.length;a++){if(!i[a])return-1;if(!n[a])return 1;if(i[a].index>n[a].index)return 1;if(i[a].index<n[a].index)return-1}return i.length<n.length?-1:r.offset>o.offset?1:r.offset<o.offset?-1:0}step(t){var e=3===t.nodeType?\"text\":\"element\";return{id:t.id,tagName:t.tagName,type:e,index:this.position(t)}}filteredStep(t,e){var i,n=this.filter(t,e);if(n)return i=3===n.nodeType?\"text\":\"element\",{id:n.id,tagName:n.tagName,type:i,index:this.filteredPosition(n,e)}}pathTo(t,e,i){for(var n,s={steps:[],terminal:{offset:null,assertion:null}},r=t;r&&r.parentNode&&9!=r.parentNode.nodeType;)(n=i?this.filteredStep(r,i):this.step(r))&&s.steps.unshift(n),r=r.parentNode;return null!=e&&e>=0&&(s.terminal.offset=e,\"text\"!=s.steps[s.steps.length-1].type&&s.steps.push({type:\"text\",index:0})),s}equalStep(t,e){return!(!t||!e)&&(t.index===e.index&&t.id===e.id&&t.type===e.type)}fromRange(t,e,i){var n={range:!1,base:{},path:{},start:null,end:null},s=t.startContainer,r=t.endContainer,o=t.startOffset,a=t.endOffset,h=!1;if(i&&(h=null!=s.ownerDocument.querySelector(\".\"+i)),\"string\"==typeof e?(n.base=this.parseComponent(e),n.spinePos=n.base.steps[1].index):\"object\"==typeof e&&(n.base=e),t.collapsed)h&&(o=this.patchOffset(s,o,i)),n.path=this.pathTo(s,o,i);else{n.range=!0,h&&(o=this.patchOffset(s,o,i)),n.start=this.pathTo(s,o,i),h&&(a=this.patchOffset(r,a,i)),n.end=this.pathTo(r,a,i),n.path={steps:[],terminal:null};var l,c=n.start.steps.length;for(l=0;l<c&&this.equalStep(n.start.steps[l],n.end.steps[l]);l++)l===c-1?n.start.terminal===n.end.terminal&&(n.path.steps.push(n.start.steps[l]),n.range=!1):n.path.steps.push(n.start.steps[l]);n.start.steps=n.start.steps.slice(n.path.steps.length),n.end.steps=n.end.steps.slice(n.path.steps.length)}return n}fromNode(t,e,i){var n={range:!1,base:{},path:{},start:null,end:null};return\"string\"==typeof e?(n.base=this.parseComponent(e),n.spinePos=n.base.steps[1].index):\"object\"==typeof e&&(n.base=e),n.path=this.pathTo(t,null,i),n}filter(t,e){var i,n,s,r,o,a=!1;return 3===t.nodeType?(a=!0,s=t.parentNode,i=t.parentNode.classList.contains(e)):(a=!1,i=t.classList.contains(e)),i&&a?(r=s.previousSibling,o=s.nextSibling,r&&3===r.nodeType?n=r:o&&3===o.nodeType&&(n=o),n||t):!(i&&!a)&&t}patchOffset(t,e,i){if(3!=t.nodeType)throw new Error(\"Anchor must be a text node\");var n=t,s=e;for(t.parentNode.classList.contains(i)&&(n=t.parentNode);n.previousSibling;){if(1===n.previousSibling.nodeType){if(!n.previousSibling.classList.contains(i))break;s+=n.previousSibling.textContent.length}else s+=n.previousSibling.textContent.length;n=n.previousSibling}return s}normalizedMap(t,e,i){var n,s,r,o={},a=-1,h=t.length;for(n=0;n<h;n++)1===(s=t[n].nodeType)&&t[n].classList.contains(i)&&(s=3),n>0&&3===s&&3===r?o[n]=a:e===s&&(a+=1,o[n]=a),r=s;return o}position(t){var e,i;return 1===t.nodeType?((e=t.parentNode.children)||(e=Object(n.findChildren)(t.parentNode)),i=Array.prototype.indexOf.call(e,t)):i=(e=this.textNodes(t.parentNode)).indexOf(t),i}filteredPosition(t,e){var i,n;return 1===t.nodeType?(i=t.parentNode.children,n=this.normalizedMap(i,1,e)):(i=t.parentNode.childNodes,t.parentNode.classList.contains(e)&&(i=(t=t.parentNode).parentNode.childNodes),n=this.normalizedMap(i,3,e)),n[Array.prototype.indexOf.call(i,t)]}stepsToXpath(t){var e=[\".\",\"*\"];return t.forEach((function(t){var i=t.index+1;t.id?e.push(\"*[position()=\"+i+\" and @id='\"+t.id+\"']\"):\"text\"===t.type?e.push(\"text()[\"+i+\"]\"):e.push(\"*[\"+i+\"]\")})),e.join(\"/\")}stepsToQuerySelector(t){var e=[\"html\"];return t.forEach((function(t){var i=t.index+1;t.id?e.push(\"#\"+t.id):\"text\"===t.type||e.push(\"*:nth-child(\"+i+\")\")})),e.join(\">\")}textNodes(t,e){return Array.prototype.slice.call(t.childNodes).filter((function(t){return 3===t.nodeType||!(!e||!t.classList.contains(e))}))}walkToNode(t,e,i){var s,r,o=e||document,a=o.documentElement,h=t.length;for(r=0;r<h&&(\"element\"===(s=t[r]).type?a=s.id?o.getElementById(s.id):(a.children||Object(n.findChildren)(a))[s.index]:\"text\"===s.type&&(a=this.textNodes(a,i)[s.index]),a);r++);return a}findNode(t,e,i){var n,s,r=e||document;return i||void 0===r.evaluate?n=i?this.walkToNode(t,r,i):this.walkToNode(t,r):(s=this.stepsToXpath(t),n=r.evaluate(s,r,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue),n}fixMiss(t,e,i,n){var s,r,o=this.findNode(t.slice(0,-1),i,n),a=o.childNodes,h=this.normalizedMap(a,3,n),l=t[t.length-1].index;for(let t in h){if(!h.hasOwnProperty(t))return;if(h[t]===l){if(!(e>(r=(s=a[t]).textContent.length))){o=1===s.nodeType?s.childNodes[0]:s;break}e-=r}}return{container:o,offset:e}}toRange(t,e){var i,s,r,o,a,h,l,c,u=t||document,d=!!e&&null!=u.querySelector(\".\"+e);if(i=void 0!==u.createRange?u.createRange():new n.RangeObject,this.range?(s=this.start,h=this.path.steps.concat(s.steps),o=this.findNode(h,u,d?e:null),r=this.end,l=this.path.steps.concat(r.steps),a=this.findNode(l,u,d?e:null)):(s=this.path,h=this.path.steps,o=this.findNode(this.path.steps,u,d?e:null)),!o)return console.log(\"No startContainer found for\",this.toString()),null;try{null!=s.terminal.offset?i.setStart(o,s.terminal.offset):i.setStart(o,0)}catch(t){c=this.fixMiss(h,s.terminal.offset,u,d?e:null),i.setStart(c.container,c.offset)}if(a)try{null!=r.terminal.offset?i.setEnd(a,r.terminal.offset):i.setEnd(a,0)}catch(t){c=this.fixMiss(l,this.end.terminal.offset,u,d?e:null),i.setEnd(c.container,c.offset)}return i}isCfiString(t){return\"string\"==typeof t&&0===t.indexOf(\"epubcfi(\")&&\")\"===t[t.length-1]}generateChapterComponent(t,e,i){var n=\"/\"+2*(t+1)+\"/\";return n+=2*(parseInt(e)+1),i&&(n+=\"[\"+i+\"]\"),n}collapse(t){this.range&&(this.range=!1,t?(this.path.steps=this.path.steps.concat(this.start.steps),this.path.terminal=this.start.terminal):(this.path.steps=this.path.steps.concat(this.end.steps),this.path.terminal=this.end.terminal))}}e.a=s},function(t,e,i){\"use strict\";var n,s,r,o,a,h,l,c=i(31),u=i(45),d=Function.prototype.apply,f=Function.prototype.call,p=Object.create,g=Object.defineProperty,m=Object.defineProperties,v=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};s=function(t,e){var i,s;return u(e),s=this,n.call(this,t,i=function(){r.call(s,t,i),d.call(e,this,arguments)}),i.__eeOnceListener__=e,this},a={on:n=function(t,e){var i;return u(e),v.call(this,\"__ee__\")?i=this.__ee__:(i=y.value=p(null),g(this,\"__ee__\",y),y.value=null),i[t]?\"object\"==typeof i[t]?i[t].push(e):i[t]=[i[t],e]:i[t]=e,this},once:s,off:r=function(t,e){var i,n,s,r;if(u(e),!v.call(this,\"__ee__\"))return this;if(!(i=this.__ee__)[t])return this;if(\"object\"==typeof(n=i[t]))for(r=0;s=n[r];++r)s!==e&&s.__eeOnceListener__!==e||(2===n.length?i[t]=n[r?0:1]:n.splice(r,1));else n!==e&&n.__eeOnceListener__!==e||delete i[t];return this},emit:o=function(t){var e,i,n,s,r;if(v.call(this,\"__ee__\")&&(s=this.__ee__[t]))if(\"object\"==typeof s){for(i=arguments.length,r=new Array(i-1),e=1;e<i;++e)r[e-1]=arguments[e];for(s=s.slice(),e=0;n=s[e];++e)d.call(n,this,r)}else switch(arguments.length){case 1:f.call(s,this);break;case 2:f.call(s,this,arguments[1]);break;case 3:f.call(s,this,arguments[1],arguments[2]);break;default:for(i=arguments.length,r=new Array(i-1),e=1;e<i;++e)r[e-1]=arguments[e];d.call(s,this,r)}}},h={on:c(n),once:c(s),off:c(r),emit:c(o)},l=m({},h),t.exports=e=function(t){return null==t?p(l):m(Object(t),h)},e.methods=a},function(t,e,i){\"use strict\";var n=i(7),s=i.n(n);e.a=class{constructor(t){var e;t.indexOf(\"://\")>-1&&(t=new URL(t).pathname),e=this.parse(t),this.path=t,this.isDirectory(t)?this.directory=t:this.directory=e.dir+\"/\",this.filename=e.base,this.extension=e.ext.slice(1)}parse(t){return s.a.parse(t)}isAbsolute(t){return s.a.isAbsolute(t||this.path)}isDirectory(t){return\"/\"===t.charAt(t.length-1)}resolve(t){return s.a.resolve(this.directory,t)}relative(t){return t&&t.indexOf(\"://\")>-1?t:s.a.relative(this.directory,t)}splitPath(t){return this.splitPathRe.exec(t).slice(1)}toString(){return this.path}}},function(t,e,i){\"use strict\";var n=i(4),s=i(7),r=i.n(s);e.a=class{constructor(t,e){var i=t.indexOf(\"://\")>-1,s=t;if(this.Url=void 0,this.href=t,this.protocol=\"\",this.origin=\"\",this.hash=\"\",this.hash=\"\",this.search=\"\",this.base=e,!i&&!1!==e&&\"string\"!=typeof e&&window&&window.location&&(this.base=window.location.href),i||this.base)try{this.base?this.Url=new URL(t,this.base):this.Url=new URL(t),this.href=this.Url.href,this.protocol=this.Url.protocol,this.origin=this.Url.origin,this.hash=this.Url.hash,this.search=this.Url.search,s=this.Url.pathname+(this.Url.search?this.Url.search:\"\")}catch(t){this.Url=void 0,this.base&&(s=new n.a(this.base).resolve(s))}this.Path=new n.a(s),this.directory=this.Path.directory,this.filename=this.Path.filename,this.extension=this.Path.extension}path(){return this.Path}resolve(t){var e;return t.indexOf(\"://\")>-1?t:(e=r.a.resolve(this.directory,t),this.origin+e)}relative(t){return r.a.relative(t,this.directory)}toString(){return this.href}}},function(t,e,i){\"use strict\";e.a=class{constructor(t){this.context=t||this,this.hooks=[]}register(){for(var t=0;t<arguments.length;++t)if(\"function\"==typeof arguments[t])this.hooks.push(arguments[t]);else for(var e=0;e<arguments[t].length;++e)this.hooks.push(arguments[t][e])}deregister(t){let e;for(let i=0;i<this.hooks.length;i++)if(e=this.hooks[i],e===t){this.hooks.splice(i,1);break}}trigger(){var t=arguments,e=this.context,i=[];return this.hooks.forEach((function(n){try{var s=n.apply(e,t)}catch(t){console.log(t)}s&&\"function\"==typeof s.then&&i.push(s)})),Promise.all(i)}list(){return this.hooks}clear(){return this.hooks=[]}}},function(t,e,i){\"use strict\";if(!n)var n={cwd:function(){return\"/\"}};function s(t){if(\"string\"!=typeof t)throw new TypeError(\"Path must be a string. Received \"+t)}function r(t,e){for(var i,n=\"\",s=-1,r=0,o=0;o<=t.length;++o){if(o<t.length)i=t.charCodeAt(o);else{if(47===i)break;i=47}if(47===i){if(s===o-1||1===r);else if(s!==o-1&&2===r){if(n.length<2||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){for(var a=n.length-1,h=a;h>=0&&47!==n.charCodeAt(h);--h);if(h!==a){n=-1===h?\"\":n.slice(0,h),s=o,r=0;continue}}else if(2===n.length||1===n.length){n=\"\",s=o,r=0;continue}e&&(n.length>0?n+=\"/..\":n=\"..\")}else n.length>0?n+=\"/\"+t.slice(s+1,o):n=t.slice(s+1,o);s=o,r=0}else 46===i&&-1!==r?++r:r=-1}return n}var o={resolve:function(){for(var t,e=\"\",i=!1,o=arguments.length-1;o>=-1&&!i;o--){var a;o>=0?a=arguments[o]:(void 0===t&&(t=n.cwd()),a=t),s(a),0!==a.length&&(e=a+\"/\"+e,i=47===a.charCodeAt(0))}return e=r(e,!i),i?e.length>0?\"/\"+e:\"/\":e.length>0?e:\".\"},normalize:function(t){if(s(t),0===t.length)return\".\";var e=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=r(t,!e)).length||e||(t=\".\"),t.length>0&&i&&(t+=\"/\"),e?\"/\"+t:t},isAbsolute:function(t){return s(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return\".\";for(var t,e=0;e<arguments.length;++e){var i=arguments[e];s(i),i.length>0&&(void 0===t?t=i:t+=\"/\"+i)}return void 0===t?\".\":o.normalize(t)},relative:function(t,e){if(s(t),s(e),t===e)return\"\";if((t=o.resolve(t))===(e=o.resolve(e)))return\"\";for(var i=1;i<t.length&&47===t.charCodeAt(i);++i);for(var n=t.length,r=n-i,a=1;a<e.length&&47===e.charCodeAt(a);++a);for(var h=e.length-a,l=r<h?r:h,c=-1,u=0;u<=l;++u){if(u===l){if(h>l){if(47===e.charCodeAt(a+u))return e.slice(a+u+1);if(0===u)return e.slice(a+u)}else r>l&&(47===t.charCodeAt(i+u)?c=u:0===u&&(c=0));break}var d=t.charCodeAt(i+u);if(d!==e.charCodeAt(a+u))break;47===d&&(c=u)}var f=\"\";for(u=i+c+1;u<=n;++u)u!==n&&47!==t.charCodeAt(u)||(0===f.length?f+=\"..\":f+=\"/..\");return f.length>0?f+e.slice(a+c):(a+=c,47===e.charCodeAt(a)&&++a,e.slice(a))},_makeLong:function(t){return t},dirname:function(t){if(s(t),0===t.length)return\".\";for(var e=t.charCodeAt(0),i=47===e,n=-1,r=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!r){n=o;break}}else r=!1;return-1===n?i?\"/\":\".\":i&&1===n?\"//\":t.slice(0,n)},basename:function(t,e){if(void 0!==e&&\"string\"!=typeof e)throw new TypeError('\"ext\" argument must be a string');s(t);var i,n=0,r=-1,o=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return\"\";var a=e.length-1,h=-1;for(i=t.length-1;i>=0;--i){var l=t.charCodeAt(i);if(47===l){if(!o){n=i+1;break}}else-1===h&&(o=!1,h=i+1),a>=0&&(l===e.charCodeAt(a)?-1==--a&&(r=i):(a=-1,r=h))}return n===r?r=h:-1===r&&(r=t.length),t.slice(n,r)}for(i=t.length-1;i>=0;--i)if(47===t.charCodeAt(i)){if(!o){n=i+1;break}}else-1===r&&(o=!1,r=i+1);return-1===r?\"\":t.slice(n,r)},extname:function(t){s(t);for(var e=-1,i=0,n=-1,r=!0,o=0,a=t.length-1;a>=0;--a){var h=t.charCodeAt(a);if(47!==h)-1===n&&(r=!1,n=a+1),46===h?-1===e?e=a:1!==o&&(o=1):-1!==e&&(o=-1);else if(!r){i=a+1;break}}return-1===e||-1===n||0===o||1===o&&e===n-1&&e===i+1?\"\":t.slice(e,n)},format:function(t){if(null===t||\"object\"!=typeof t)throw new TypeError('Parameter \"pathObject\" must be an object, not '+typeof t);return function(t,e){var i=e.dir||e.root,n=e.base||(e.name||\"\")+(e.ext||\"\");return i?i===e.root?i+n:i+t+n:n}(\"/\",t)},parse:function(t){s(t);var e={root:\"\",dir:\"\",base:\"\",ext:\"\",name:\"\"};if(0===t.length)return e;var i,n=t.charCodeAt(0),r=47===n;r?(e.root=\"/\",i=1):i=0;for(var o=-1,a=0,h=-1,l=!0,c=t.length-1,u=0;c>=i;--c)if(47!==(n=t.charCodeAt(c)))-1===h&&(l=!1,h=c+1),46===n?-1===o?o=c:1!==u&&(u=1):-1!==o&&(u=-1);else if(!l){a=c+1;break}return-1===o||-1===h||0===u||1===u&&o===h-1&&o===a+1?-1!==h&&(e.base=e.name=0===a&&r?t.slice(1,h):t.slice(a,h)):(0===a&&r?(e.name=t.slice(1,o),e.base=t.slice(1,h)):(e.name=t.slice(a,o),e.base=t.slice(a,h)),e.ext=t.slice(o,h)),a>0?e.dir=t.slice(0,a-1):r&&(e.dir=\"/\"),e},sep:\"/\",delimiter:\":\",posix:null};t.exports=o},function(t,e,i){\"use strict\";i.d(e,\"a\",(function(){return r})),i.d(e,\"b\",(function(){return o})),i.d(e,\"d\",(function(){return a})),i.d(e,\"c\",(function(){return h})),i.d(e,\"e\",(function(){return l}));var n=i(0),s=i(5);i(4);function r(t,e){var i,s,r=e.url,o=r.indexOf(\"://\")>-1;t&&(s=Object(n.qs)(t,\"head\"),(i=Object(n.qs)(s,\"base\"))||(i=t.createElement(\"base\"),s.insertBefore(i,s.firstChild)),!o&&window&&window.location&&(r=window.location.origin+r),i.setAttribute(\"href\",r))}function o(t,e){var i,s,r=e.canonical;t&&(i=Object(n.qs)(t,\"head\"),(s=Object(n.qs)(i,\"link[rel='canonical']\"))?s.setAttribute(\"href\",r):((s=t.createElement(\"link\")).setAttribute(\"rel\",\"canonical\"),s.setAttribute(\"href\",r),i.appendChild(s)))}function a(t,e){var i,s,r=e.idref;t&&(i=Object(n.qs)(t,\"head\"),(s=Object(n.qs)(i,\"link[property='dc.identifier']\"))?s.setAttribute(\"content\",r):((s=t.createElement(\"meta\")).setAttribute(\"name\",\"dc.identifier\"),s.setAttribute(\"content\",r),i.appendChild(s)))}function h(t,e){var i=t.querySelectorAll(\"a[href]\");if(i.length)for(var r=Object(n.qs)(t.ownerDocument,\"base\"),o=r?r.getAttribute(\"href\"):void 0,a=function(t){var i=t.getAttribute(\"href\");if(0!==i.indexOf(\"mailto:\"))if(i.indexOf(\"://\")>-1)t.setAttribute(\"target\",\"_blank\");else{var n;try{n=new s.a(i,o)}catch(t){}t.onclick=function(){return n&&n.hash?e(n.Path.path+n.hash):e(n?n.Path.path:i),!1}}}.bind(this),h=0;h<i.length;h++)a(i[h])}function l(t,e,i){return e.forEach((function(e,n){e&&i[n]&&(e=e.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\"\\\\$&\"),t=t.replace(new RegExp(e,\"g\"),i[n]))})),t}},function(t,e,i){\"use strict\";var n=i(0);e.a=class{constructor(t){this._q=[],this.context=t,this.tick=n.requestAnimationFrame,this.running=!1,this.paused=!1}enqueue(){var t,e,i=[].shift.call(arguments),s=arguments;if(!i)throw new Error(\"No Task Provided\");return e=\"function\"==typeof i?{task:i,args:s,deferred:t=new n.defer,promise:t.promise}:{promise:i},this._q.push(e),0!=this.paused||this.running||this.run(),e.promise}dequeue(){var t,e,i;return!this._q.length||this.paused?((t=new n.defer).deferred.resolve(),t.promise):(e=(t=this._q.shift()).task)?(i=e.apply(this.context,t.args))&&\"function\"==typeof i.then?i.then(function(){t.deferred.resolve.apply(this.context,arguments)}.bind(this),function(){t.deferred.reject.apply(this.context,arguments)}.bind(this)):(t.deferred.resolve.apply(this.context,i),t.promise):t.promise?t.promise:void 0}dump(){for(;this._q.length;)this.dequeue()}run(){return this.running||(this.running=!0,this.defered=new n.defer),this.tick.call(window,()=>{this._q.length?this.dequeue().then(function(){this.run()}.bind(this)):(this.defered.resolve(),this.running=void 0)}),1==this.paused&&(this.paused=!1),this.defered.promise}flush(){return this.running?this.running:this._q.length?(this.running=this.dequeue().then(function(){return this.running=void 0,this.flush()}.bind(this)),this.running):void 0}clear(){this._q=[]}length(){return this._q.length}pause(){this.paused=!0}stop(){this._q=[],this.running=!1,this.paused=!0}}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0);function o(){var t=\"reverse\",e=function(){var t=document.createElement(\"div\");t.dir=\"rtl\",t.style.position=\"fixed\",t.style.width=\"1px\",t.style.height=\"1px\",t.style.top=\"0px\",t.style.left=\"0px\",t.style.overflow=\"hidden\";var e=document.createElement(\"div\");e.style.width=\"2px\";var i=document.createElement(\"span\");i.style.width=\"1px\",i.style.display=\"inline-block\";var n=document.createElement(\"span\");return n.style.width=\"1px\",n.style.display=\"inline-block\",e.appendChild(i),e.appendChild(n),t.appendChild(e),t}();return document.body.appendChild(e),e.scrollLeft>0?t=\"default\":\"undefined\"!=typeof Element&&Element.prototype.scrollIntoView?(e.children[0].children[1].scrollIntoView(),e.scrollLeft<0&&(t=\"negative\")):(e.scrollLeft=1,0===e.scrollLeft&&(t=\"negative\")),document.body.removeChild(e),t}var a=i(11),h=i(9),l=i(28),c=i.n(l);var u=class{constructor(t){this.settings=t||{},this.id=\"epubjs-container-\"+Object(r.uuid)(),this.container=this.create(this.settings),this.settings.hidden&&(this.wrapper=this.wrap(this.container))}create(t){let e=t.height,i=t.width,n=t.overflow||!1,s=t.axis||\"vertical\",o=t.direction;Object(r.extend)(this.settings,t),t.height&&Object(r.isNumber)(t.height)&&(e=t.height+\"px\"),t.width&&Object(r.isNumber)(t.width)&&(i=t.width+\"px\");let a=document.createElement(\"div\");return a.id=this.id,a.classList.add(\"epub-container\"),a.style.wordSpacing=\"0\",a.style.lineHeight=\"0\",a.style.verticalAlign=\"top\",a.style.position=\"relative\",\"horizontal\"===s&&(a.style.display=\"flex\",a.style.flexDirection=\"row\",a.style.flexWrap=\"nowrap\"),i&&(a.style.width=i),e&&(a.style.height=e),n&&(\"scroll\"===n&&\"vertical\"===s?(a.style[\"overflow-y\"]=n,a.style[\"overflow-x\"]=\"hidden\"):\"scroll\"===n&&\"horizontal\"===s?(a.style[\"overflow-y\"]=\"hidden\",a.style[\"overflow-x\"]=n):a.style.overflow=n),o&&(a.dir=o,a.style.direction=o),o&&this.settings.fullsize&&(document.body.style.direction=o),a}wrap(t){var e=document.createElement(\"div\");return e.style.visibility=\"hidden\",e.style.overflow=\"hidden\",e.style.width=\"0\",e.style.height=\"0\",e.appendChild(t),e}getElement(t){var e;if(Object(r.isElement)(t)?e=t:\"string\"==typeof t&&(e=document.getElementById(t)),!e)throw new Error(\"Not an Element\");return e}attachTo(t){var e,i=this.getElement(t);if(i)return e=this.settings.hidden?this.wrapper:this.container,i.appendChild(e),this.element=i,i}getContainer(){return this.container}onResize(t){Object(r.isNumber)(this.settings.width)&&Object(r.isNumber)(this.settings.height)||(this.resizeFunc=c()(t,50),window.addEventListener(\"resize\",this.resizeFunc,!1))}onOrientationChange(t){this.orientationChangeFunc=t,window.addEventListener(\"orientationchange\",this.orientationChangeFunc,!1)}size(t,e){var i;let n=t||this.settings.width,s=e||this.settings.height;null===t?(i=this.element.getBoundingClientRect()).width&&(t=Math.floor(i.width),this.container.style.width=t+\"px\"):Object(r.isNumber)(t)?this.container.style.width=t+\"px\":this.container.style.width=t,null===e?(i=i||this.element.getBoundingClientRect()).height&&(e=i.height,this.container.style.height=e+\"px\"):Object(r.isNumber)(e)?this.container.style.height=e+\"px\":this.container.style.height=e,Object(r.isNumber)(t)||(t=this.container.clientWidth),Object(r.isNumber)(e)||(e=this.container.clientHeight),this.containerStyles=window.getComputedStyle(this.container),this.containerPadding={left:parseFloat(this.containerStyles[\"padding-left\"])||0,right:parseFloat(this.containerStyles[\"padding-right\"])||0,top:parseFloat(this.containerStyles[\"padding-top\"])||0,bottom:parseFloat(this.containerStyles[\"padding-bottom\"])||0};let o=Object(r.windowBounds)(),a=window.getComputedStyle(document.body),h=parseFloat(a[\"padding-left\"])||0,l=parseFloat(a[\"padding-right\"])||0,c=parseFloat(a[\"padding-top\"])||0,u=parseFloat(a[\"padding-bottom\"])||0;return n||(t=o.width-h-l),(this.settings.fullsize&&!s||!s)&&(e=o.height-c-u),{width:t-this.containerPadding.left-this.containerPadding.right,height:e-this.containerPadding.top-this.containerPadding.bottom}}bounds(){let t;return\"visible\"!==this.container.style.overflow&&(t=this.container&&this.container.getBoundingClientRect()),t&&t.width&&t.height?t:Object(r.windowBounds)()}getSheet(){var t=document.createElement(\"style\");return t.appendChild(document.createTextNode(\"\")),document.head.appendChild(t),t.sheet}addStyleRules(t,e){var i=\"#\"+this.id+\" \",n=\"\";this.sheet||(this.sheet=this.getSheet()),e.forEach((function(t){for(var e in t)t.hasOwnProperty(e)&&(n+=e+\":\"+t[e]+\";\")})),this.sheet.insertRule(i+t+\" {\"+n+\"}\",0)}axis(t){\"horizontal\"===t?(this.container.style.display=\"flex\",this.container.style.flexDirection=\"row\",this.container.style.flexWrap=\"nowrap\"):this.container.style.display=\"block\",this.settings.axis=t}direction(t){this.container&&(this.container.dir=t,this.container.style.direction=t),this.settings.fullsize&&(document.body.style.direction=t),this.settings.dir=t}overflow(t){this.container&&(\"scroll\"===t&&\"vertical\"===this.settings.axis?(this.container.style[\"overflow-y\"]=t,this.container.style[\"overflow-x\"]=\"hidden\"):\"scroll\"===t&&\"horizontal\"===this.settings.axis?(this.container.style[\"overflow-y\"]=\"hidden\",this.container.style[\"overflow-x\"]=t):this.container.style.overflow=t),this.settings.overflow=t}destroy(){this.element&&(this.settings.hidden?this.wrapper:this.container,this.element.contains(this.container)&&this.element.removeChild(this.container),window.removeEventListener(\"resize\",this.resizeFunc),window.removeEventListener(\"orientationChange\",this.orientationChangeFunc))}};var d=class{constructor(t){this.container=t,this._views=[],this.length=0,this.hidden=!1}all(){return this._views}first(){return this._views[0]}last(){return this._views[this._views.length-1]}indexOf(t){return this._views.indexOf(t)}slice(){return this._views.slice.apply(this._views,arguments)}get(t){return this._views[t]}append(t){return this._views.push(t),this.container&&this.container.appendChild(t.element),this.length++,t}prepend(t){return this._views.unshift(t),this.container&&this.container.insertBefore(t.element,this.container.firstChild),this.length++,t}insert(t,e){return this._views.splice(e,0,t),this.container&&(e<this.container.children.length?this.container.insertBefore(t.element,this.container.children[e]):this.container.appendChild(t.element)),this.length++,t}remove(t){var e=this._views.indexOf(t);e>-1&&this._views.splice(e,1),this.destroy(t),this.length--}destroy(t){t.displayed&&t.destroy(),this.container&&this.container.removeChild(t.element),t=null}forEach(){return this._views.forEach.apply(this._views,arguments)}clear(){var t,e=this.length;if(this.length){for(var i=0;i<e;i++)t=this._views[i],this.destroy(t);this._views=[],this.length=0}}find(t){for(var e,i=this.length,n=0;n<i;n++)if((e=this._views[n]).displayed&&e.section.index==t.index)return e}displayed(){for(var t,e=[],i=this.length,n=0;n<i;n++)(t=this._views[n]).displayed&&e.push(t);return e}show(){for(var t,e=this.length,i=0;i<e;i++)(t=this._views[i]).displayed&&t.show();this.hidden=!1}hide(){for(var t,e=this.length,i=0;i<e;i++)(t=this._views[i]).displayed&&t.hide();this.hidden=!0}},f=i(1);class p{constructor(t){this.name=\"default\",this.optsSettings=t.settings,this.View=t.view,this.request=t.request,this.renditionQueue=t.queue,this.q=new h.a(this),this.settings=Object(r.extend)(this.settings||{},{infinite:!0,hidden:!1,width:void 0,height:void 0,axis:void 0,writingMode:void 0,flow:\"scrolled\",ignoreClass:\"\",fullsize:void 0,allowScriptedContent:!1,allowPopups:!1}),Object(r.extend)(this.settings,t.settings||{}),this.viewSettings={ignoreClass:this.settings.ignoreClass,axis:this.settings.axis,flow:this.settings.flow,layout:this.layout,method:this.settings.method,width:0,height:0,forceEvenPages:!0,allowScriptedContent:this.settings.allowScriptedContent,allowPopups:this.settings.allowPopups},this.rendered=!1}render(t,e){let i=t.tagName;void 0!==this.settings.fullsize||!i||\"body\"!=i.toLowerCase()&&\"html\"!=i.toLowerCase()||(this.settings.fullsize=!0),this.settings.fullsize&&(this.settings.overflow=\"visible\",this.overflow=this.settings.overflow),this.settings.size=e,this.settings.rtlScrollType=o(),this.stage=new u({width:e.width,height:e.height,overflow:this.overflow,hidden:this.settings.hidden,axis:this.settings.axis,fullsize:this.settings.fullsize,direction:this.settings.direction}),this.stage.attachTo(t),this.container=this.stage.getContainer(),this.views=new d(this.container),this._bounds=this.bounds(),this._stageSize=this.stage.size(),this.viewSettings.width=this._stageSize.width,this.viewSettings.height=this._stageSize.height,this.stage.onResize(this.onResized.bind(this)),this.stage.onOrientationChange(this.onOrientationChange.bind(this)),this.addEventListeners(),this.layout&&this.updateLayout(),this.rendered=!0}addEventListeners(){var t;window.addEventListener(\"unload\",function(t){this.destroy()}.bind(this)),t=this.settings.fullsize?window:this.container,this._onScroll=this.onScroll.bind(this),t.addEventListener(\"scroll\",this._onScroll)}removeEventListeners(){(this.settings.fullsize?window:this.container).removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0}destroy(){clearTimeout(this.orientationTimeout),clearTimeout(this.resizeTimeout),clearTimeout(this.afterScrolled),this.clear(),this.removeEventListeners(),this.stage.destroy(),this.rendered=!1}onOrientationChange(t){let{orientation:e}=window;this.optsSettings.resizeOnOrientationChange&&this.resize(),clearTimeout(this.orientationTimeout),this.orientationTimeout=setTimeout(function(){this.orientationTimeout=void 0,this.optsSettings.resizeOnOrientationChange&&this.resize(),this.emit(f.c.MANAGERS.ORIENTATION_CHANGE,e)}.bind(this),500)}onResized(t){this.resize()}resize(t,e,i){let n=this.stage.size(t,e);this.winBounds=Object(r.windowBounds)(),this.orientationTimeout&&this.winBounds.width===this.winBounds.height?this._stageSize=void 0:this._stageSize&&this._stageSize.width===n.width&&this._stageSize.height===n.height||(this._stageSize=n,this._bounds=this.bounds(),this.clear(),this.viewSettings.width=this._stageSize.width,this.viewSettings.height=this._stageSize.height,this.updateLayout(),this.emit(f.c.MANAGERS.RESIZED,{width:this._stageSize.width,height:this._stageSize.height},i))}createView(t,e){return new this.View(t,Object(r.extend)(this.viewSettings,{forceRight:e}))}handleNextPrePaginated(t,e,i){let n;if(\"pre-paginated\"===this.layout.name&&this.layout.divisor>1){if(t||0===e.index)return;if(n=e.next(),n&&!n.properties.includes(\"page-spread-left\"))return i.call(this,n)}}display(t,e){var i=new r.defer,n=i.promise;(e===t.href||Object(r.isNumber)(e))&&(e=void 0);var s=this.views.find(t);if(s&&t&&\"pre-paginated\"!==this.layout.name){let t=s.offset();if(\"ltr\"===this.settings.direction)this.scrollTo(t.left,t.top,!0);else{let e=s.width();this.scrollTo(t.left+e,t.top,!0)}if(e){let t=s.locationOf(e),i=s.width();this.moveTo(t,i)}return i.resolve(),n}this.clear();let o=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&t.properties.includes(\"page-spread-right\")&&(o=!0),this.add(t,o).then(function(t){if(e){let i=t.locationOf(e),n=t.width();this.moveTo(i,n)}}.bind(this),t=>{i.reject(t)}).then(function(){return this.handleNextPrePaginated(o,t,this.add)}.bind(this)).then(function(){this.views.show(),i.resolve()}.bind(this)),n}afterDisplayed(t){this.emit(f.c.MANAGERS.ADDED,t)}afterResized(t){this.emit(f.c.MANAGERS.RESIZE,t.section)}moveTo(t,e){var i=0,n=0;this.isPaginated?((i=Math.floor(t.left/this.layout.delta)*this.layout.delta)+this.layout.delta>this.container.scrollWidth&&(i=this.container.scrollWidth-this.layout.delta),(n=Math.floor(t.top/this.layout.delta)*this.layout.delta)+this.layout.delta>this.container.scrollHeight&&(n=this.container.scrollHeight-this.layout.delta)):n=t.top,\"rtl\"===this.settings.direction&&(i+=this.layout.delta,i-=e),this.scrollTo(i,n,!0)}add(t,e){var i=this.createView(t,e);return this.views.append(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}append(t,e){var i=this.createView(t,e);return this.views.append(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}prepend(t,e){var i=this.createView(t,e);return i.on(f.c.VIEWS.RESIZED,t=>{this.counter(t)}),this.views.prepend(i),i.onDisplayed=this.afterDisplayed.bind(this),i.onResize=this.afterResized.bind(this),i.on(f.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),i.on(f.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),i.display(this.request)}counter(t){\"vertical\"===this.settings.axis?this.scrollBy(0,t.heightDelta,!0):this.scrollBy(t.widthDelta,0,!0)}next(){var t;let e=this.settings.direction;if(this.views.length){if(!this.isPaginated||\"horizontal\"!==this.settings.axis||e&&\"ltr\"!==e)if(this.isPaginated&&\"horizontal\"===this.settings.axis&&\"rtl\"===e)this.scrollLeft=this.container.scrollLeft,\"default\"===this.settings.rtlScrollType?this.container.scrollLeft>0?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next():this.container.scrollLeft+-1*this.layout.delta>-1*this.container.scrollWidth?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next();else if(this.isPaginated&&\"vertical\"===this.settings.axis){this.scrollTop=this.container.scrollTop,this.container.scrollTop+this.container.offsetHeight<this.container.scrollHeight?this.scrollBy(0,this.layout.height,!0):t=this.views.last().section.next()}else t=this.views.last().section.next();else this.scrollLeft=this.container.scrollLeft,this.container.scrollLeft+this.container.offsetWidth+this.layout.delta<=this.container.scrollWidth?this.scrollBy(this.layout.delta,0,!0):t=this.views.last().section.next();if(t){this.clear(),this.updateLayout();let e=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&t.properties.includes(\"page-spread-right\")&&(e=!0),this.append(t,e).then(function(){return this.handleNextPrePaginated(e,t,this.append)}.bind(this),t=>t).then(function(){this.isPaginated||\"horizontal\"!==this.settings.axis||\"rtl\"!==this.settings.direction||\"default\"!==this.settings.rtlScrollType||this.scrollTo(this.container.scrollWidth,0,!0),this.views.show()}.bind(this))}}}prev(){var t;let e=this.settings.direction;if(this.views.length){if(!this.isPaginated||\"horizontal\"!==this.settings.axis||e&&\"ltr\"!==e)if(this.isPaginated&&\"horizontal\"===this.settings.axis&&\"rtl\"===e)this.scrollLeft=this.container.scrollLeft,\"default\"===this.settings.rtlScrollType?this.container.scrollLeft+this.container.offsetWidth<this.container.scrollWidth?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev():this.container.scrollLeft<0?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev();else if(this.isPaginated&&\"vertical\"===this.settings.axis){this.scrollTop=this.container.scrollTop,this.container.scrollTop>0?this.scrollBy(0,-this.layout.height,!0):t=this.views.first().section.prev()}else t=this.views.first().section.prev();else this.scrollLeft=this.container.scrollLeft,this.container.scrollLeft>0?this.scrollBy(-this.layout.delta,0,!0):t=this.views.first().section.prev();if(t){this.clear(),this.updateLayout();let e=!1;return\"pre-paginated\"===this.layout.name&&2===this.layout.divisor&&\"object\"!=typeof t.prev()&&(e=!0),this.prepend(t,e).then(function(){var e;if(\"pre-paginated\"===this.layout.name&&this.layout.divisor>1&&(e=t.prev()))return this.prepend(e)}.bind(this),t=>t).then(function(){this.isPaginated&&\"horizontal\"===this.settings.axis&&(\"rtl\"===this.settings.direction?\"default\"===this.settings.rtlScrollType?this.scrollTo(0,0,!0):this.scrollTo(-1*this.container.scrollWidth+this.layout.delta,0,!0):this.scrollTo(this.container.scrollWidth-this.layout.delta,0,!0)),this.views.show()}.bind(this))}}}current(){var t=this.visible();return t.length?t[t.length-1]:null}clear(){this.views&&(this.views.hide(),this.scrollTo(0,0,!0),this.views.clear())}currentLocation(){return this.updateLayout(),this.isPaginated&&\"horizontal\"===this.settings.axis?this.location=this.paginatedLocation():this.location=this.scrolledLocation(),this.location}scrolledLocation(){let t=this.visible(),e=this.container.getBoundingClientRect(),i=e.height<window.innerHeight?e.height:window.innerHeight,n=e.width<window.innerWidth?e.width:window.innerWidth,s=\"vertical\"===this.settings.axis,r=(this.settings.direction,0);return this.settings.fullsize&&(r=s?window.scrollY:window.scrollX),t.map(t=>{let o,a,h,l,{index:c,href:u}=t.section,d=t.position(),f=t.width(),p=t.height();s?(o=r+e.top-d.top+0,a=o+i-0,l=this.layout.count(p,i).pages,h=i):(o=r+e.left-d.left+0,a=o+n-0,l=this.layout.count(f,n).pages,h=n);let g=Math.ceil(o/h),m=[],v=Math.ceil(a/h);if(\"rtl\"===this.settings.direction&&!s){let t=g;g=l-v,v=l-t}m=[];for(var y=g;y<=v;y++){let t=y+1;m.push(t)}return{index:c,href:u,pages:m,totalPages:l,mapping:this.mapping.page(t.contents,t.section.cfiBase,o,a)}})}paginatedLocation(){let t=this.visible(),e=this.container.getBoundingClientRect(),i=0,n=0;return this.settings.fullsize&&(i=window.scrollX),t.map(t=>{let s,r,o,a,{index:h,href:l}=t.section,c=t.position(),u=t.width();\"rtl\"===this.settings.direction?(s=e.right-i,a=Math.min(Math.abs(s-c.left),this.layout.width)-n,o=c.width-(c.right-s)-n,r=o-a):(s=e.left+i,a=Math.min(c.right-s,this.layout.width)-n,r=s-c.left+n,o=r+a),n+=a;let d=this.mapping.page(t.contents,t.section.cfiBase,r,o),f=this.layout.count(u).pages,p=Math.floor(r/this.layout.pageWidth),g=[],m=Math.floor(o/this.layout.pageWidth);if(p<0&&(p=0,m+=1),\"rtl\"===this.settings.direction){let t=p;p=f-m,m=f-t}for(var v=p+1;v<=m;v++){let t=v;g.push(t)}return{index:h,href:l,pages:g,totalPages:f,mapping:d}})}isVisible(t,e,i,n){var s=t.position(),r=n||this.bounds();return\"horizontal\"===this.settings.axis&&s.right>r.left-e&&s.left<r.right+i||\"vertical\"===this.settings.axis&&s.bottom>r.top-e&&s.top<r.bottom+i}visible(){for(var t,e=this.bounds(),i=this.views.displayed(),n=i.length,s=[],r=0;r<n;r++)t=i[r],!0===this.isVisible(t,0,0,e)&&s.push(t);return s}scrollBy(t,e,i){let n=\"rtl\"===this.settings.direction?-1:1;i&&(this.ignore=!0),this.settings.fullsize?window.scrollBy(t*n,e*n):(t&&(this.container.scrollLeft+=t*n),e&&(this.container.scrollTop+=e)),this.scrolled=!0}scrollTo(t,e,i){i&&(this.ignore=!0),this.settings.fullsize?window.scrollTo(t,e):(this.container.scrollLeft=t,this.container.scrollTop=e),this.scrolled=!0}onScroll(){let t,e;this.settings.fullsize?(t=window.scrollY,e=window.scrollX):(t=this.container.scrollTop,e=this.container.scrollLeft),this.scrollTop=t,this.scrollLeft=e,this.ignore?this.ignore=!1:(this.emit(f.c.MANAGERS.SCROLL,{top:t,left:e}),clearTimeout(this.afterScrolled),this.afterScrolled=setTimeout(function(){this.emit(f.c.MANAGERS.SCROLLED,{top:this.scrollTop,left:this.scrollLeft})}.bind(this),20))}bounds(){return this.stage.bounds()}applyLayout(t){this.layout=t,this.updateLayout(),this.views&&this.views.length>0&&\"pre-paginated\"===this.layout.name&&this.display(this.views.first().section)}updateLayout(){this.stage&&(this._stageSize=this.stage.size(),this.isPaginated?(this.layout.calculate(this._stageSize.width,this._stageSize.height,this.settings.gap),this.settings.offset=this.layout.delta/this.layout.divisor):this.layout.calculate(this._stageSize.width,this._stageSize.height),this.viewSettings.width=this.layout.width,this.viewSettings.height=this.layout.height,this.setLayout(this.layout))}setLayout(t){this.viewSettings.layout=t,this.mapping=new a.a(t.props,this.settings.direction,this.settings.axis),this.views&&this.views.forEach((function(e){e&&e.setLayout(t)}))}updateWritingMode(t){this.writingMode=t}updateAxis(t,e){(e||t!==this.settings.axis)&&(this.settings.axis=t,this.stage&&this.stage.axis(t),this.viewSettings.axis=t,this.mapping&&(this.mapping=new a.a(this.layout.props,this.settings.direction,this.settings.axis)),this.layout&&(\"vertical\"===t?this.layout.spread(\"none\"):this.layout.spread(this.layout.settings.spread)))}updateFlow(t,e=\"auto\"){let i=\"paginated\"===t||\"auto\"===t;this.isPaginated=i,\"scrolled-doc\"===t||\"scrolled-continuous\"===t||\"scrolled\"===t?this.updateAxis(\"vertical\"):this.updateAxis(\"horizontal\"),this.viewSettings.flow=t,this.settings.overflow?this.overflow=this.settings.overflow:this.overflow=i?\"hidden\":e,this.stage&&this.stage.overflow(this.overflow),this.updateLayout()}getContents(){var t=[];return this.views?(this.views.forEach((function(e){const i=e&&e.contents;i&&t.push(i)})),t):t}direction(t=\"ltr\"){this.settings.direction=t,this.stage&&this.stage.direction(t),this.viewSettings.direction=t,this.updateLayout()}isRendered(){return this.rendered}}s()(p.prototype);e.a=p},function(t,e,i){\"use strict\";var n=i(2),s=i(0);e.a=class{constructor(t,e,i,n=!1){this.layout=t,this.horizontal=\"horizontal\"===i,this.direction=e||\"ltr\",this._dev=n}section(t){var e=this.findRanges(t);return this.rangeListToCfiList(t.section.cfiBase,e)}page(t,e,i,s){var r,o=!(!t||!t.document)&&t.document.body;if(o){if(r=this.rangePairToCfiPair(e,{start:this.findStart(o,i,s),end:this.findEnd(o,i,s)}),!0===this._dev){let e=t.document,i=new n.a(r.start).toRange(e),s=new n.a(r.end).toRange(e),o=e.defaultView.getSelection(),a=e.createRange();o.removeAllRanges(),a.setStart(i.startContainer,i.startOffset),a.setEnd(s.endContainer,s.endOffset),o.addRange(a)}return r}}walk(t,e){if(!t||t.nodeType!==Node.TEXT_NODE){var i=function(t){return t.data.trim().length>0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT},n=i;n.acceptNode=i;for(var s,r,o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,n,!1);(s=o.nextNode())&&!(r=e(s)););return r}}findRanges(t){for(var e,i,n=[],s=t.contents.scrollWidth(),r=Math.ceil(s/this.layout.spreadWidth)*this.layout.divisor,o=this.layout.columnWidth,a=this.layout.gap,h=0;h<r.pages;h++)e=(o+a)*h,i=o*(h+1)+a*h,n.push({start:this.findStart(t.document.body,e,i),end:this.findEnd(t.document.body,e,i)});return n}findStart(t,e,i){for(var n,r,o=[t],a=t;o.length;)if(n=o.shift(),r=this.walk(n,t=>{var n,r,h,l,c;if(c=Object(s.nodeBounds)(t),this.horizontal&&\"ltr\"===this.direction){if(n=this.horizontal?c.left:c.top,r=this.horizontal?c.right:c.bottom,n>=e&&n<=i)return t;if(r>e)return t;a=t,o.push(t)}else if(this.horizontal&&\"rtl\"===this.direction){if(n=c.left,(r=c.right)<=i&&r>=e)return t;if(n<i)return t;a=t,o.push(t)}else{if(h=c.top,l=c.bottom,h>=e&&h<=i)return t;if(l>e)return t;a=t,o.push(t)}}))return this.findTextStartRange(r,e,i);return this.findTextStartRange(a,e,i)}findEnd(t,e,i){for(var n,r,o=[t],a=t;o.length;)if(n=o.shift(),r=this.walk(n,t=>{var n,r,h,l,c;if(c=Object(s.nodeBounds)(t),this.horizontal&&\"ltr\"===this.direction){if(n=Math.round(c.left),r=Math.round(c.right),n>i&&a)return a;if(r>i)return t;a=t,o.push(t)}else if(this.horizontal&&\"rtl\"===this.direction){if(n=Math.round(this.horizontal?c.left:c.top),(r=Math.round(this.horizontal?c.right:c.bottom))<e&&a)return a;if(n<e)return t;a=t,o.push(t)}else{if(h=Math.round(c.top),l=Math.round(c.bottom),h>i&&a)return a;if(l>i)return t;a=t,o.push(t)}}))return this.findTextEndRange(r,e,i);return this.findTextEndRange(a,e,i)}findTextStartRange(t,e,i){for(var n,s,r=this.splitTextNodeIntoRanges(t),o=0;o<r.length;o++)if(s=(n=r[o]).getBoundingClientRect(),this.horizontal&&\"ltr\"===this.direction){if(s.left>=e)return n}else if(this.horizontal&&\"rtl\"===this.direction){if(s.right<=i)return n}else if(s.top>=e)return n;return r[0]}findTextEndRange(t,e,i){for(var n,s,r,o,a,h,l,c=this.splitTextNodeIntoRanges(t),u=0;u<c.length;u++){if(r=(s=c[u]).getBoundingClientRect(),this.horizontal&&\"ltr\"===this.direction){if(o=r.left,a=r.right,o>i&&n)return n;if(a>i)return s}else if(this.horizontal&&\"rtl\"===this.direction){if(o=r.left,(a=r.right)<e&&n)return n;if(o<e)return s}else{if(h=r.top,l=r.bottom,h>i&&n)return n;if(l>i)return s}n=s}return c[c.length-1]}splitTextNodeIntoRanges(t,e){var i,n=[],s=(t.textContent||\"\").trim(),r=t.ownerDocument,o=e||\" \",a=s.indexOf(o);if(-1===a||t.nodeType!=Node.TEXT_NODE)return(i=r.createRange()).selectNodeContents(t),[i];for((i=r.createRange()).setStart(t,0),i.setEnd(t,a),n.push(i),i=!1;-1!=a;)(a=s.indexOf(o,a+1))>0&&(i&&(i.setEnd(t,a),n.push(i)),(i=r.createRange()).setStart(t,a+1));return i&&(i.setEnd(t,s.length),n.push(i)),n}rangePairToCfiPair(t,e){var i=e.start,s=e.end;return i.collapse(!0),s.collapse(!1),{start:new n.a(i,t).toString(),end:new n.a(s,t).toString()}}rangeListToCfiList(t,e){for(var i,n=[],s=0;s<e.length;s++)i=this.rangePairToCfiPair(t,e[s]),n.push(i);return n}axis(t){return t&&(this.horizontal=\"horizontal\"===t),this.horizontal}}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(2),a=i(11),h=i(8),l=i(1);const c=\"undefined\"!=typeof navigator,u=c&&/Chrome/.test(navigator.userAgent),d=c&&!u&&/AppleWebKit/.test(navigator.userAgent);class f{constructor(t,e,i,n){this.epubcfi=new o.a,this.document=t,this.documentElement=this.document.documentElement,this.content=e||this.document.body,this.window=this.document.defaultView,this._size={width:0,height:0},this.sectionIndex=n||0,this.cfiBase=i||\"\",this.epubReadingSystem(\"epub.js\",l.b),this.called=0,this.active=!0,this.listeners()}static get listenedEvents(){return l.a}width(t){var e=this.content;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.width=t),parseInt(this.window.getComputedStyle(e).width)}height(t){var e=this.content;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.height=t),parseInt(this.window.getComputedStyle(e).height)}contentWidth(t){var e=this.content||this.document.body;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.width=t),parseInt(this.window.getComputedStyle(e).width)}contentHeight(t){var e=this.content||this.document.body;return t&&Object(r.isNumber)(t)&&(t+=\"px\"),t&&(e.style.height=t),parseInt(this.window.getComputedStyle(e).height)}textWidth(){let t,e,i=this.document.createRange(),n=this.content||this.document.body,s=Object(r.borders)(n);return i.selectNodeContents(n),t=i.getBoundingClientRect(),e=t.width,s&&s.width&&(e+=s.width),Math.round(e)}textHeight(){let t,e,i=this.document.createRange(),n=this.content||this.document.body;return i.selectNodeContents(n),t=i.getBoundingClientRect(),e=t.bottom,Math.round(e)}scrollWidth(){return this.documentElement.scrollWidth}scrollHeight(){return this.documentElement.scrollHeight}overflow(t){return t&&(this.documentElement.style.overflow=t),this.window.getComputedStyle(this.documentElement).overflow}overflowX(t){return t&&(this.documentElement.style.overflowX=t),this.window.getComputedStyle(this.documentElement).overflowX}overflowY(t){return t&&(this.documentElement.style.overflowY=t),this.window.getComputedStyle(this.documentElement).overflowY}css(t,e,i){var n=this.content||this.document.body;return e?n.style.setProperty(t,e,i?\"important\":\"\"):n.style.removeProperty(t),this.window.getComputedStyle(n)[t]}viewport(t){var e,i=this.document.querySelector(\"meta[name='viewport']\"),n={width:void 0,height:void 0,scale:void 0,minimum:void 0,maximum:void 0,scalable:void 0},s=[];if(i&&i.hasAttribute(\"content\")){let t=i.getAttribute(\"content\"),e=t.match(/width\\s*=\\s*([^,]*)/),s=t.match(/height\\s*=\\s*([^,]*)/),r=t.match(/initial-scale\\s*=\\s*([^,]*)/),o=t.match(/minimum-scale\\s*=\\s*([^,]*)/),a=t.match(/maximum-scale\\s*=\\s*([^,]*)/),h=t.match(/user-scalable\\s*=\\s*([^,]*)/);e&&e.length&&void 0!==e[1]&&(n.width=e[1]),s&&s.length&&void 0!==s[1]&&(n.height=s[1]),r&&r.length&&void 0!==r[1]&&(n.scale=r[1]),o&&o.length&&void 0!==o[1]&&(n.minimum=o[1]),a&&a.length&&void 0!==a[1]&&(n.maximum=a[1]),h&&h.length&&void 0!==h[1]&&(n.scalable=h[1])}return e=Object(r.defaults)(t||{},n),t&&(e.width&&s.push(\"width=\"+e.width),e.height&&s.push(\"height=\"+e.height),e.scale&&s.push(\"initial-scale=\"+e.scale),\"no\"===e.scalable?(s.push(\"minimum-scale=\"+e.scale),s.push(\"maximum-scale=\"+e.scale),s.push(\"user-scalable=\"+e.scalable)):(e.scalable&&s.push(\"user-scalable=\"+e.scalable),e.minimum&&s.push(\"minimum-scale=\"+e.minimum),e.maximum&&s.push(\"minimum-scale=\"+e.maximum)),i||((i=this.document.createElement(\"meta\")).setAttribute(\"name\",\"viewport\"),this.document.querySelector(\"head\").appendChild(i)),i.setAttribute(\"content\",s.join(\", \")),this.window.scrollTo(0,0)),e}expand(){this.emit(l.c.CONTENTS.EXPAND)}listeners(){this.imageLoadListeners(),this.mediaQueryListeners(),this.addEventListeners(),this.addSelectionListeners(),\"undefined\"==typeof ResizeObserver?(this.resizeListeners(),this.visibilityListeners()):this.resizeObservers(),this.linksHandler()}removeListeners(){this.removeEventListeners(),this.removeSelectionListeners(),this.observer&&this.observer.disconnect(),clearTimeout(this.expanding)}resizeCheck(){let t=this.textWidth(),e=this.textHeight();t==this._size.width&&e==this._size.height||(this._size={width:t,height:e},this.onResize&&this.onResize(this._size),this.emit(l.c.CONTENTS.RESIZE,this._size))}resizeListeners(){clearTimeout(this.expanding),requestAnimationFrame(this.resizeCheck.bind(this)),this.expanding=setTimeout(this.resizeListeners.bind(this),350)}visibilityListeners(){document.addEventListener(\"visibilitychange\",()=>{\"visible\"===document.visibilityState&&!1===this.active?(this.active=!0,this.resizeListeners()):(this.active=!1,clearTimeout(this.expanding))})}transitionListeners(){let t=this.content;t.style.transitionProperty=\"font, font-size, font-size-adjust, font-stretch, font-variation-settings, font-weight, width, height\",t.style.transitionDuration=\"0.001ms\",t.style.transitionTimingFunction=\"linear\",t.style.transitionDelay=\"0\",this._resizeCheck=this.resizeCheck.bind(this),this.document.addEventListener(\"transitionend\",this._resizeCheck)}mediaQueryListeners(){for(var t=this.document.styleSheets,e=function(t){t.matches&&!this._expanding&&setTimeout(this.expand.bind(this),1)}.bind(this),i=0;i<t.length;i+=1){var n;try{n=t[i].cssRules}catch(t){return}if(!n)return;for(var s=0;s<n.length;s+=1){if(n[s].media)this.window.matchMedia(n[s].media.mediaText).addListener(e)}}}resizeObservers(){this.observer=new ResizeObserver(t=>{requestAnimationFrame(this.resizeCheck.bind(this))}),this.observer.observe(this.document.documentElement)}mutationObservers(){this.observer=new MutationObserver(t=>{this.resizeCheck()});this.observer.observe(this.document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}imageLoadListeners(){for(var t,e=this.document.querySelectorAll(\"img\"),i=0;i<e.length;i++)void 0!==(t=e[i]).naturalWidth&&0===t.naturalWidth&&(t.onload=this.expand.bind(this))}fontLoadListeners(){this.document&&this.document.fonts&&this.document.fonts.ready.then(function(){this.resizeCheck()}.bind(this))}root(){return this.document?this.document.documentElement:null}locationOf(t,e){var i,n={left:0,top:0};if(!this.document)return n;if(this.epubcfi.isCfiString(t)){let s=new o.a(t).toRange(this.document,e);if(s){try{if(!s.endContainer||s.startContainer==s.endContainer&&s.startOffset==s.endOffset){let t=s.startContainer.textContent.indexOf(\" \",s.startOffset);-1==t&&(t=s.startContainer.textContent.length),s.setEnd(s.startContainer,t)}}catch(t){console.error(\"setting end offset to start container length failed\",t)}if(s.startContainer.nodeType===Node.ELEMENT_NODE)i=s.startContainer.getBoundingClientRect(),n.left=i.left,n.top=i.top;else if(d){let t=s.startContainer,e=new Range;try{1===t.nodeType?i=t.getBoundingClientRect():s.startOffset+2<t.length?(e.setStart(t,s.startOffset),e.setEnd(t,s.startOffset+2),i=e.getBoundingClientRect()):s.startOffset-2>0?(e.setStart(t,s.startOffset-2),e.setEnd(t,s.startOffset),i=e.getBoundingClientRect()):i=t.parentNode.getBoundingClientRect()}catch(t){console.error(t,t.stack)}}else i=s.getBoundingClientRect()}}else if(\"string\"==typeof t&&t.indexOf(\"#\")>-1){let e=t.substring(t.indexOf(\"#\")+1),n=this.document.getElementById(e);if(n)if(d){let t=new Range;t.selectNode(n),i=t.getBoundingClientRect()}else i=n.getBoundingClientRect()}return i&&(n.left=i.left,n.top=i.top),n}addStylesheet(t){return new Promise(function(e,i){var n,s=!1;this.document?(n=this.document.querySelector(\"link[href='\"+t+\"']\"))?e(!0):((n=this.document.createElement(\"link\")).type=\"text/css\",n.rel=\"stylesheet\",n.href=t,n.onload=n.onreadystatechange=function(){s||this.readyState&&\"complete\"!=this.readyState||(s=!0,setTimeout(()=>{e(!0)},1))},this.document.head.appendChild(n)):e(!1)}.bind(this))}_getStylesheetNode(t){var e;return t=\"epubjs-inserted-css-\"+(t||\"\"),!!this.document&&((e=this.document.getElementById(t))||((e=this.document.createElement(\"style\")).id=t,this.document.head.appendChild(e)),e)}addStylesheetCss(t,e){return!(!this.document||!t)&&(this._getStylesheetNode(e).innerHTML=t,!0)}addStylesheetRules(t,e){var i;if(this.document&&t&&0!==t.length)if(i=this._getStylesheetNode(e).sheet,\"[object Array]\"===Object.prototype.toString.call(t))for(var n=0,s=t.length;n<s;n++){var r=1,o=t[n],a=t[n][0],h=\"\";\"[object Array]\"===Object.prototype.toString.call(o[1][0])&&(o=o[1],r=0);for(var l=o.length;r<l;r++){var c=o[r];h+=c[0]+\":\"+c[1]+(c[2]?\" !important\":\"\")+\";\\n\"}i.insertRule(a+\"{\"+h+\"}\",i.cssRules.length)}else{Object.keys(t).forEach(e=>{const n=t[e];if(Array.isArray(n))n.forEach(t=>{const n=Object.keys(t).map(e=>`${e}:${t[e]}`).join(\";\");i.insertRule(`${e}{${n}}`,i.cssRules.length)});else{const t=Object.keys(n).map(t=>`${t}:${n[t]}`).join(\";\");i.insertRule(`${e}{${t}}`,i.cssRules.length)}})}}addScript(t){return new Promise(function(e,i){var n,s=!1;this.document?((n=this.document.createElement(\"script\")).type=\"text/javascript\",n.async=!0,n.src=t,n.onload=n.onreadystatechange=function(){s||this.readyState&&\"complete\"!=this.readyState||(s=!0,setTimeout((function(){e(!0)}),1))},this.document.head.appendChild(n)):e(!1)}.bind(this))}addClass(t){var e;this.document&&(e=this.content||this.document.body)&&e.classList.add(t)}removeClass(t){var e;this.document&&(e=this.content||this.document.body)&&e.classList.remove(t)}addEventListeners(){this.document&&(this._triggerEvent=this.triggerEvent.bind(this),l.a.forEach((function(t){this.document.addEventListener(t,this._triggerEvent,{passive:!0})}),this))}removeEventListeners(){this.document&&(l.a.forEach((function(t){this.document.removeEventListener(t,this._triggerEvent,{passive:!0})}),this),this._triggerEvent=void 0)}triggerEvent(t){this.emit(t.type,t)}addSelectionListeners(){this.document&&(this._onSelectionChange=this.onSelectionChange.bind(this),this.document.addEventListener(\"selectionchange\",this._onSelectionChange,{passive:!0}))}removeSelectionListeners(){this.document&&(this.document.removeEventListener(\"selectionchange\",this._onSelectionChange,{passive:!0}),this._onSelectionChange=void 0)}onSelectionChange(t){this.selectionEndTimeout&&clearTimeout(this.selectionEndTimeout),this.selectionEndTimeout=setTimeout(function(){var t=this.window.getSelection();this.triggerSelectedEvent(t)}.bind(this),250)}triggerSelectedEvent(t){var e,i;t&&t.rangeCount>0&&((e=t.getRangeAt(0)).collapsed||(i=new o.a(e,this.cfiBase).toString(),this.emit(l.c.CONTENTS.SELECTED,i),this.emit(l.c.CONTENTS.SELECTED_RANGE,e)))}range(t,e){return new o.a(t).toRange(this.document,e)}cfiFromRange(t,e){return new o.a(t,this.cfiBase,e).toString()}cfiFromNode(t,e){return new o.a(t,this.cfiBase,e).toString()}map(t){return new a.a(t).section()}size(t,e){var i={scale:1,scalable:\"no\"};this.layoutStyle(\"scrolling\"),t>=0&&(this.width(t),i.width=t,this.css(\"padding\",\"0 \"+t/12+\"px\")),e>=0&&(this.height(e),i.height=e),this.css(\"margin\",\"0\"),this.css(\"box-sizing\",\"border-box\"),this.viewport(i)}columns(t,e,i,n,s){let o=Object(r.prefixed)(\"column-axis\"),a=Object(r.prefixed)(\"column-gap\"),h=Object(r.prefixed)(\"column-width\"),l=Object(r.prefixed)(\"column-fill\"),c=0===this.writingMode().indexOf(\"vertical\")?\"vertical\":\"horizontal\";this.layoutStyle(\"paginated\"),\"rtl\"===s&&\"horizontal\"===c&&this.direction(s),this.width(t),this.height(e),this.viewport({width:t,height:e,scale:1,scalable:\"no\"}),this.css(\"overflow-y\",\"hidden\"),this.css(\"margin\",\"0\",!0),\"vertical\"===c?(this.css(\"padding-top\",n/2+\"px\",!0),this.css(\"padding-bottom\",n/2+\"px\",!0),this.css(\"padding-left\",\"20px\"),this.css(\"padding-right\",\"20px\"),this.css(o,\"vertical\")):(this.css(\"padding-top\",\"20px\"),this.css(\"padding-bottom\",\"20px\"),this.css(\"padding-left\",n/2+\"px\",!0),this.css(\"padding-right\",n/2+\"px\",!0),this.css(o,\"horizontal\")),this.css(\"box-sizing\",\"border-box\"),this.css(\"max-width\",\"inherit\"),this.css(l,\"auto\"),this.css(a,n+\"px\"),this.css(h,i+\"px\"),this.css(\"-webkit-line-box-contain\",\"block glyphs replaced\")}scaler(t,e,i){var n=\"scale(\"+t+\")\",s=\"\";this.css(\"transform-origin\",\"top left\"),(e>=0||i>=0)&&(s=\" translate(\"+(e||0)+\"px, \"+(i||0)+\"px )\"),this.css(\"transform\",n+s)}fit(t,e,i){var n=this.viewport(),s=parseInt(n.width),r=parseInt(n.height),o=t/s,a=e/r,h=o<a?o:a;if(this.layoutStyle(\"paginated\"),this.width(s),this.height(r),this.overflow(\"hidden\"),this.scaler(h,0,0),this.css(\"background-size\",s*h+\"px \"+r*h+\"px\"),this.css(\"background-color\",\"transparent\"),i&&i.properties.includes(\"page-spread-left\")){var l=t-s*h;this.css(\"margin-left\",l+\"px\")}}direction(t){this.documentElement&&(this.documentElement.style.direction=t)}mapPage(t,e,i,n,s){return new a.a(e,s).page(this,t,i,n)}linksHandler(){Object(h.c)(this.content,t=>{this.emit(l.c.CONTENTS.LINK_CLICKED,t)})}writingMode(t){let e=Object(r.prefixed)(\"writing-mode\");return t&&this.documentElement&&(this.documentElement.style[e]=t),this.window.getComputedStyle(this.documentElement)[e]||\"\"}layoutStyle(t){return t&&(this._layoutStyle=t,navigator.epubReadingSystem.layoutStyle=this._layoutStyle),this._layoutStyle||\"paginated\"}epubReadingSystem(t,e){return navigator.epubReadingSystem={name:t,version:e,layoutStyle:this.layoutStyle(),hasFeature:function(t){switch(t){case\"dom-manipulation\":case\"layout-changes\":case\"touch-events\":case\"mouse-events\":case\"keyboard-events\":return!0;case\"spine-scripting\":default:return!1}}},navigator.epubReadingSystem}destroy(){this.removeListeners()}}s()(f.prototype),e.a=f},function(t,e,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Underline=e.Highlight=e.Mark=e.Pane=void 0;var n=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),s=o(i(49)),r=o(i(50));function o(t){return t&&t.__esModule?t:{default:t}}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function h(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.Pane=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.body;l(this,t),this.target=e,this.element=s.default.createElement(\"svg\"),this.marks=[],this.element.style.position=\"absolute\",this.element.setAttribute(\"pointer-events\",\"none\"),r.default.proxyMouse(this.target,this.marks),this.container=i,this.container.appendChild(this.element),this.render()}return n(t,[{key:\"addMark\",value:function(t){var e=s.default.createElement(\"g\");return this.element.appendChild(e),t.bind(e,this.container),this.marks.push(t),t.render(),t}},{key:\"removeMark\",value:function(t){var e=this.marks.indexOf(t);if(-1!==e){var i=t.unbind();this.element.removeChild(i),this.marks.splice(e,1)}}},{key:\"render\",value:function(){var t,e,i,n;!function(t,e){t.style.setProperty(\"top\",e.top+\"px\",\"important\"),t.style.setProperty(\"left\",e.left+\"px\",\"important\"),t.style.setProperty(\"height\",e.height+\"px\",\"important\"),t.style.setProperty(\"width\",e.width+\"px\",\"important\")}(this.element,(t=this.target,e=this.container,i=e.getBoundingClientRect(),n=t.getBoundingClientRect(),{top:n.top-i.top,left:n.left-i.left,height:t.scrollHeight,width:t.scrollWidth}));var s=!0,r=!1,o=void 0;try{for(var a,h=this.marks[Symbol.iterator]();!(s=(a=h.next()).done);s=!0){a.value.render()}}catch(t){r=!0,o=t}finally{try{!s&&h.return&&h.return()}finally{if(r)throw o}}}}]),t}();var c=e.Mark=function(){function t(){l(this,t),this.element=null}return n(t,[{key:\"bind\",value:function(t,e){this.element=t,this.container=e}},{key:\"unbind\",value:function(){var t=this.element;return this.element=null,t}},{key:\"render\",value:function(){}},{key:\"dispatchEvent\",value:function(t){this.element&&this.element.dispatchEvent(t)}},{key:\"getBoundingClientRect\",value:function(){return this.element.getBoundingClientRect()}},{key:\"getClientRects\",value:function(){for(var t=[],e=this.element.firstChild;e;)t.push(e.getBoundingClientRect()),e=e.nextSibling;return t}},{key:\"filteredRanges\",value:function(){var t=Array.from(this.range.getClientRects());return t.filter((function(e){for(var i=0;i<t.length;i++){if(t[i]===e)return!0;if(n=t[i],(s=e).right<=n.right&&s.left>=n.left&&s.top>=n.top&&s.bottom<=n.bottom)return!1}var n,s;return!0}))}}]),t}(),u=e.Highlight=function(t){function e(t,i,n,s){l(this,e);var r=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.range=t,r.className=i,r.data=n||{},r.attributes=s||{},r}return h(e,t),n(e,[{key:\"bind\",value:function(t,i){for(var n in function t(e,i,n){null===e&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,i);if(void 0===s){var r=Object.getPrototypeOf(e);return null===r?void 0:t(r,i,n)}if(\"value\"in s)return s.value;var o=s.get;return void 0!==o?o.call(n):void 0}(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),\"bind\",this).call(this,t,i),this.data)this.data.hasOwnProperty(n)&&(this.element.dataset[n]=this.data[n]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&this.element.setAttribute(n,this.attributes[n]);this.className&&this.element.classList.add(this.className)}},{key:\"render\",value:function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(var t=this.element.ownerDocument.createDocumentFragment(),e=this.filteredRanges(),i=this.element.getBoundingClientRect(),n=this.container.getBoundingClientRect(),r=0,o=e.length;r<o;r++){var a=e[r],h=s.default.createElement(\"rect\");h.setAttribute(\"x\",a.left-i.left+n.left),h.setAttribute(\"y\",a.top-i.top+n.top),h.setAttribute(\"height\",a.height),h.setAttribute(\"width\",a.width),t.appendChild(h)}this.element.appendChild(t)}}]),e}(c);e.Underline=function(t){function e(t,i,n,s){return l(this,e),a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,n,s))}return h(e,t),n(e,[{key:\"render\",value:function(){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(var t=this.element.ownerDocument.createDocumentFragment(),e=this.filteredRanges(),i=this.element.getBoundingClientRect(),n=this.container.getBoundingClientRect(),r=0,o=e.length;r<o;r++){var a=e[r],h=s.default.createElement(\"rect\");h.setAttribute(\"x\",a.left-i.left+n.left),h.setAttribute(\"y\",a.top-i.top+n.top),h.setAttribute(\"height\",a.height),h.setAttribute(\"width\",a.width),h.setAttribute(\"fill\",\"none\");var l=s.default.createElement(\"line\");l.setAttribute(\"x1\",a.left-i.left+n.left),l.setAttribute(\"x2\",a.left-i.left+n.left+a.width),l.setAttribute(\"y1\",a.top-i.top+n.top+a.height-1),l.setAttribute(\"y2\",a.top-i.top+n.top+a.height-1),l.setAttribute(\"stroke-width\",1),l.setAttribute(\"stroke\",\"black\"),l.setAttribute(\"stroke-linecap\",\"square\"),t.appendChild(h),t.appendChild(l)}this.element.appendChild(t)}}]),e}(u)},function(t,e,i){\"use strict\";function n(t,e){return void 0===e&&(e=Object),e&&\"function\"==typeof e.freeze?e.freeze(t):t}var s=n({HTML:\"text/html\",isHTML:function(t){return t===s.HTML},XML_APPLICATION:\"application/xml\",XML_TEXT:\"text/xml\",XML_XHTML_APPLICATION:\"application/xhtml+xml\",XML_SVG_IMAGE:\"image/svg+xml\"}),r=n({HTML:\"http://www.w3.org/1999/xhtml\",isHTML:function(t){return t===r.HTML},SVG:\"http://www.w3.org/2000/svg\",XML:\"http://www.w3.org/XML/1998/namespace\",XMLNS:\"http://www.w3.org/2000/xmlns/\"});e.freeze=n,e.MIME_TYPE=s,e.NAMESPACE=r},function(t,e,i){var n=i(25);e.DOMImplementation=n.DOMImplementation,e.XMLSerializer=n.XMLSerializer,e.DOMParser=i(46).DOMParser},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(6),a=i(2),h=i(9),l=i(1);class c{constructor(t){this.settings=t,this.name=t.layout||\"reflowable\",this._spread=\"none\"!==t.spread,this._minSpreadWidth=t.minSpreadWidth||800,this._evenSpreads=t.evenSpreads||!1,\"scrolled\"===t.flow||\"scrolled-continuous\"===t.flow||\"scrolled-doc\"===t.flow?this._flow=\"scrolled\":this._flow=\"paginated\",this.width=0,this.height=0,this.spreadWidth=0,this.delta=0,this.columnWidth=0,this.gap=0,this.divisor=1,this.props={name:this.name,spread:this._spread,flow:this._flow,width:0,height:0,spreadWidth:0,delta:0,columnWidth:0,gap:0,divisor:1}}flow(t){return void 0!==t&&(this._flow=\"scrolled\"===t||\"scrolled-continuous\"===t||\"scrolled-doc\"===t?\"scrolled\":\"paginated\",this.update({flow:this._flow})),this._flow}spread(t,e){return t&&(this._spread=\"none\"!==t,this.update({spread:this._spread})),e>=0&&(this._minSpreadWidth=e),this._spread}calculate(t,e,i){var n,s,r,o,a=1,h=i||0,l=t,c=e,u=Math.floor(l/12);a=this._spread&&l>=this._minSpreadWidth?2:1,\"reflowable\"!==this.name||\"paginated\"!==this._flow||i>=0||(h=u%2==0?u:u-1),\"pre-paginated\"===this.name&&(h=0),a>1?r=(n=l/a-h)+h:(n=l,r=l),\"pre-paginated\"===this.name&&a>1&&(l=n),s=n*a+h,o=l,this.width=l,this.height=c,this.spreadWidth=s,this.pageWidth=r,this.delta=o,this.columnWidth=n,this.gap=h,this.divisor=a,this.update({width:l,height:c,spreadWidth:s,pageWidth:r,delta:o,columnWidth:n,gap:h,divisor:a})}format(t,e,i){return\"pre-paginated\"===this.name?t.fit(this.columnWidth,this.height,e):\"paginated\"===this._flow?t.columns(this.width,this.height,this.columnWidth,this.gap,this.settings.direction):i&&\"horizontal\"===i?t.size(null,this.height):t.size(this.width,null)}count(t,e){let i,n;return\"pre-paginated\"===this.name?(i=1,n=1):\"paginated\"===this._flow?(e=e||this.delta,i=Math.ceil(t/e),n=i*this.divisor):(e=e||this.height,i=Math.ceil(t/e),n=i),{spreads:i,pages:n}}update(t){if(Object.keys(t).forEach(e=>{this.props[e]===t[e]&&delete t[e]}),Object.keys(t).length>0){let e=Object(r.extend)(this.props,t);this.emit(l.c.LAYOUT.UPDATED,e,t)}}}s()(c.prototype);var u=c,d=i(5);var f=class{constructor(t){this.rendition=t,this._themes={default:{rules:{},url:\"\",serialized:\"\"}},this._overrides={},this._current=\"default\",this._injected=[],this.rendition.hooks.content.register(this.inject.bind(this)),this.rendition.hooks.content.register(this.overrides.bind(this))}register(){if(0!==arguments.length)return 1===arguments.length&&\"object\"==typeof arguments[0]?this.registerThemes(arguments[0]):1===arguments.length&&\"string\"==typeof arguments[0]?this.default(arguments[0]):2===arguments.length&&\"string\"==typeof arguments[1]?this.registerUrl(arguments[0],arguments[1]):2===arguments.length&&\"object\"==typeof arguments[1]?this.registerRules(arguments[0],arguments[1]):void 0}default(t){if(t)return\"string\"==typeof t?this.registerUrl(\"default\",t):\"object\"==typeof t?this.registerRules(\"default\",t):void 0}registerThemes(t){for(var e in t)t.hasOwnProperty(e)&&(\"string\"==typeof t[e]?this.registerUrl(e,t[e]):this.registerRules(e,t[e]))}registerCss(t,e){this._themes[t]={serialized:e},(this._injected[t]||\"default\"==t)&&this.update(t)}registerUrl(t,e){var i=new d.a(e);this._themes[t]={url:i.toString()},(this._injected[t]||\"default\"==t)&&this.update(t)}registerRules(t,e){this._themes[t]={rules:e},(this._injected[t]||\"default\"==t)&&this.update(t)}select(t){var e=this._current;this._current=t,this.update(t),this.rendition.getContents().forEach(i=>{i.removeClass(e),i.addClass(t)})}update(t){this.rendition.getContents().forEach(e=>{this.add(t,e)})}inject(t){var e,i=[],n=this._themes;for(var s in n)!n.hasOwnProperty(s)||s!==this._current&&\"default\"!==s||(((e=n[s]).rules&&Object.keys(e.rules).length>0||e.url&&-1===i.indexOf(e.url))&&this.add(s,t),this._injected.push(s));\"default\"!=this._current&&t.addClass(this._current)}add(t,e){var i=this._themes[t];i&&e&&(i.url?e.addStylesheet(i.url):i.serialized?(e.addStylesheetCss(i.serialized,t),i.injected=!0):i.rules&&(e.addStylesheetRules(i.rules,t),i.injected=!0))}override(t,e,i){var n=this.rendition.getContents();this._overrides[t]={value:e,priority:!0===i},n.forEach(e=>{e.css(t,this._overrides[t].value,this._overrides[t].priority)})}removeOverride(t){var e=this.rendition.getContents();delete this._overrides[t],e.forEach(e=>{e.css(t)})}overrides(t){var e=this._overrides;for(var i in e)e.hasOwnProperty(i)&&t.css(i,e[i].value,e[i].priority)}fontSize(t){this.override(\"font-size\",t)}font(t){this.override(\"font-family\",t,!0)}destroy(){this.rendition=void 0,this._themes=void 0,this._overrides=void 0,this._current=void 0,this._injected=void 0}};i(12);class p{constructor({type:t,cfiRange:e,data:i,sectionIndex:n,cb:s,className:r,styles:o}){this.type=t,this.cfiRange=e,this.data=i,this.sectionIndex=n,this.mark=void 0,this.cb=s,this.className=r,this.styles=o}update(t){this.data=t}attach(t){let e,{cfiRange:i,data:n,type:s,mark:r,cb:o,className:a,styles:h}=this;return\"highlight\"===s?e=t.highlight(i,n,o,a,h):\"underline\"===s?e=t.underline(i,n,o,a,h):\"mark\"===s&&(e=t.mark(i,n,o)),this.mark=e,this.emit(l.c.ANNOTATION.ATTACH,e),e}detach(t){let e,{cfiRange:i,type:n}=this;return t&&(\"highlight\"===n?e=t.unhighlight(i):\"underline\"===n?e=t.ununderline(i):\"mark\"===n&&(e=t.unmark(i))),this.mark=void 0,this.emit(l.c.ANNOTATION.DETACH,e),e}text(){}}s()(p.prototype);var g=class{constructor(t){this.rendition=t,this.highlights=[],this.underlines=[],this.marks=[],this._annotations={},this._annotationsBySectionIndex={},this.rendition.hooks.render.register(this.inject.bind(this)),this.rendition.hooks.unloaded.register(this.clear.bind(this))}add(t,e,i,n,s,r){let o=encodeURI(e+t),h=new a.a(e).spinePos,l=new p({type:t,cfiRange:e,data:i,sectionIndex:h,cb:n,className:s,styles:r});return this._annotations[o]=l,h in this._annotationsBySectionIndex?this._annotationsBySectionIndex[h].push(o):this._annotationsBySectionIndex[h]=[o],this.rendition.views().forEach(t=>{l.sectionIndex===t.index&&l.attach(t)}),l}remove(t,e){let i=encodeURI(t+e);if(i in this._annotations){let t=this._annotations[i];if(e&&t.type!==e)return;this.rendition.views().forEach(e=>{this._removeFromAnnotationBySectionIndex(t.sectionIndex,i),t.sectionIndex===e.index&&t.detach(e)}),delete this._annotations[i]}}_removeFromAnnotationBySectionIndex(t,e){this._annotationsBySectionIndex[t]=this._annotationsAt(t).filter(t=>t!==e)}_annotationsAt(t){return this._annotationsBySectionIndex[t]}highlight(t,e,i,n,s){return this.add(\"highlight\",t,e,i,n,s)}underline(t,e,i,n,s){return this.add(\"underline\",t,e,i,n,s)}mark(t,e,i){return this.add(\"mark\",t,e,i)}each(){return this._annotations.forEach.apply(this._annotations,arguments)}inject(t){let e=t.index;if(e in this._annotationsBySectionIndex){this._annotationsBySectionIndex[e].forEach(e=>{this._annotations[e].attach(t)})}}clear(t){let e=t.index;if(e in this._annotationsBySectionIndex){this._annotationsBySectionIndex[e].forEach(e=>{this._annotations[e].detach(t)})}}show(){}hide(){}},m=i(20),v=i(10),y=i(22);class b{constructor(t,e){this.settings=Object(r.extend)(this.settings||{},{width:null,height:null,ignoreClass:\"\",manager:\"default\",view:\"iframe\",flow:null,layout:null,spread:null,minSpreadWidth:800,stylesheet:null,resizeOnOrientationChange:!0,script:null,snap:!1,defaultDirection:\"ltr\",allowScriptedContent:!1,allowPopups:!1}),Object(r.extend)(this.settings,e),\"object\"==typeof this.settings.manager&&(this.manager=this.settings.manager),this.book=t,this.hooks={},this.hooks.display=new o.a(this),this.hooks.serialize=new o.a(this),this.hooks.content=new o.a(this),this.hooks.unloaded=new o.a(this),this.hooks.layout=new o.a(this),this.hooks.render=new o.a(this),this.hooks.show=new o.a(this),this.hooks.content.register(this.handleLinks.bind(this)),this.hooks.content.register(this.passEvents.bind(this)),this.hooks.content.register(this.adjustImages.bind(this)),this.book.spine.hooks.content.register(this.injectIdentifier.bind(this)),this.settings.stylesheet&&this.book.spine.hooks.content.register(this.injectStylesheet.bind(this)),this.settings.script&&this.book.spine.hooks.content.register(this.injectScript.bind(this)),this.themes=new f(this),this.annotations=new g(this),this.epubcfi=new a.a,this.q=new h.a(this),this.location=void 0,this.q.enqueue(this.book.opened),this.starting=new r.defer,this.started=this.starting.promise,this.q.enqueue(this.start)}setManager(t){this.manager=t}requireManager(t){return\"string\"==typeof t&&\"default\"===t?v.a:\"string\"==typeof t&&\"continuous\"===t?y.a:t}requireView(t){return\"string\"==typeof t&&\"iframe\"===t?m.a:t}start(){switch(this.settings.layout||\"pre-paginated\"!==this.book.package.metadata.layout&&\"true\"!==this.book.displayOptions.fixedLayout||(this.settings.layout=\"pre-paginated\"),this.book.package.metadata.spread){case\"none\":this.settings.spread=\"none\";break;case\"both\":this.settings.spread=!0}this.manager||(this.ViewManager=this.requireManager(this.settings.manager),this.View=this.requireView(this.settings.view),this.manager=new this.ViewManager({view:this.View,queue:this.q,request:this.book.load.bind(this.book),settings:this.settings})),this.direction(this.book.package.metadata.direction||this.settings.defaultDirection),this.settings.globalLayoutProperties=this.determineLayoutProperties(this.book.package.metadata),this.flow(this.settings.globalLayoutProperties.flow),this.layout(this.settings.globalLayoutProperties),this.manager.on(l.c.MANAGERS.ADDED,this.afterDisplayed.bind(this)),this.manager.on(l.c.MANAGERS.REMOVED,this.afterRemoved.bind(this)),this.manager.on(l.c.MANAGERS.RESIZED,this.onResized.bind(this)),this.manager.on(l.c.MANAGERS.ORIENTATION_CHANGE,this.onOrientationChange.bind(this)),this.manager.on(l.c.MANAGERS.SCROLLED,this.reportLocation.bind(this)),this.emit(l.c.RENDITION.STARTED),this.starting.resolve()}attachTo(t){return this.q.enqueue(function(){this.manager.render(t,{width:this.settings.width,height:this.settings.height}),this.emit(l.c.RENDITION.ATTACHED)}.bind(this))}display(t){return this.displaying&&this.displaying.resolve(),this.q.enqueue(this._display,t)}_display(t){if(this.book){this.epubcfi.isCfiString(t);var e,i=new r.defer,n=i.promise;return this.displaying=i,this.book.locations.length()&&Object(r.isFloat)(t)&&(t=this.book.locations.cfiFromPercentage(parseFloat(t))),(e=this.book.spine.get(t))?(this.manager.display(e,t).then(()=>{i.resolve(e),this.displaying=void 0,this.emit(l.c.RENDITION.DISPLAYED,e),this.reportLocation()},t=>{this.emit(l.c.RENDITION.DISPLAY_ERROR,t)}),n):(i.reject(new Error(\"No Section Found\")),n)}}afterDisplayed(t){t.on(l.c.VIEWS.MARK_CLICKED,(e,i)=>this.triggerMarkEvent(e,i,t.contents)),this.hooks.render.trigger(t,this).then(()=>{t.contents?this.hooks.content.trigger(t.contents,this).then(()=>{this.emit(l.c.RENDITION.RENDERED,t.section,t)}):this.emit(l.c.RENDITION.RENDERED,t.section,t)})}afterRemoved(t){this.hooks.unloaded.trigger(t,this).then(()=>{this.emit(l.c.RENDITION.REMOVED,t.section,t)})}onResized(t,e){this.emit(l.c.RENDITION.RESIZED,{width:t.width,height:t.height},e),this.location&&this.location.start&&this.display(e||this.location.start.cfi)}onOrientationChange(t){this.emit(l.c.RENDITION.ORIENTATION_CHANGE,t)}moveTo(t){this.manager.moveTo(t)}resize(t,e,i){t&&(this.settings.width=t),e&&(this.settings.height=e),this.manager.resize(t,e,i)}clear(){this.manager.clear()}next(){return this.q.enqueue(this.manager.next.bind(this.manager)).then(this.reportLocation.bind(this))}prev(){return this.q.enqueue(this.manager.prev.bind(this.manager)).then(this.reportLocation.bind(this))}determineLayoutProperties(t){var e=this.settings.layout||t.layout||\"reflowable\",i=this.settings.spread||t.spread||\"auto\",n=this.settings.orientation||t.orientation||\"auto\",s=this.settings.flow||t.flow||\"auto\",r=t.viewport||\"\",o=this.settings.minSpreadWidth||t.minSpreadWidth||800,a=this.settings.direction||t.direction||\"ltr\";return(0===this.settings.width||this.settings.width>0)&&(0===this.settings.height||this.settings.height),{layout:e,spread:i,orientation:n,flow:s,viewport:r,minSpreadWidth:o,direction:a}}flow(t){var e=t;\"scrolled\"!==t&&\"scrolled-doc\"!==t&&\"scrolled-continuous\"!==t||(e=\"scrolled\"),\"auto\"!==t&&\"paginated\"!==t||(e=\"paginated\"),this.settings.flow=t,this._layout&&this._layout.flow(e),this.manager&&this._layout&&this.manager.applyLayout(this._layout),this.manager&&this.manager.updateFlow(e),this.manager&&this.manager.isRendered()&&this.location&&(this.manager.clear(),this.display(this.location.start.cfi))}layout(t){return t&&(this._layout=new u(t),this._layout.spread(t.spread,this.settings.minSpreadWidth),this._layout.on(l.c.LAYOUT.UPDATED,(t,e)=>{this.emit(l.c.RENDITION.LAYOUT,t,e)})),this.manager&&this._layout&&this.manager.applyLayout(this._layout),this._layout}spread(t,e){this.settings.spread=t,e&&(this.settings.minSpreadWidth=e),this._layout&&this._layout.spread(t,e),this.manager&&this.manager.isRendered()&&this.manager.updateLayout()}direction(t){this.settings.direction=t||\"ltr\",this.manager&&this.manager.direction(this.settings.direction),this.manager&&this.manager.isRendered()&&this.location&&(this.manager.clear(),this.display(this.location.start.cfi))}reportLocation(){return this.q.enqueue(function(){requestAnimationFrame(function(){var t=this.manager.currentLocation();if(t&&t.then&&\"function\"==typeof t.then)t.then(function(t){let e=this.located(t);e&&e.start&&e.end&&(this.location=e,this.emit(l.c.RENDITION.LOCATION_CHANGED,{index:this.location.start.index,href:this.location.start.href,start:this.location.start.cfi,end:this.location.end.cfi,percentage:this.location.start.percentage}),this.emit(l.c.RENDITION.RELOCATED,this.location))}.bind(this));else if(t){let e=this.located(t);if(!e||!e.start||!e.end)return;this.location=e,this.emit(l.c.RENDITION.LOCATION_CHANGED,{index:this.location.start.index,href:this.location.start.href,start:this.location.start.cfi,end:this.location.end.cfi,percentage:this.location.start.percentage}),this.emit(l.c.RENDITION.RELOCATED,this.location)}}.bind(this))}.bind(this))}currentLocation(){var t=this.manager.currentLocation();if(t&&t.then&&\"function\"==typeof t.then)t.then(function(t){return this.located(t)}.bind(this));else if(t){return this.located(t)}}located(t){if(!t.length)return{};let e=t[0],i=t[t.length-1],n={start:{index:e.index,href:e.href,cfi:e.mapping.start,displayed:{page:e.pages[0]||1,total:e.totalPages}},end:{index:i.index,href:i.href,cfi:i.mapping.end,displayed:{page:i.pages[i.pages.length-1]||1,total:i.totalPages}}},s=this.book.locations.locationFromCfi(e.mapping.start),r=this.book.locations.locationFromCfi(i.mapping.end);null!=s&&(n.start.location=s,n.start.percentage=this.book.locations.percentageFromLocation(s)),null!=r&&(n.end.location=r,n.end.percentage=this.book.locations.percentageFromLocation(r));let o=this.book.pageList.pageFromCfi(e.mapping.start),a=this.book.pageList.pageFromCfi(i.mapping.end);return-1!=o&&(n.start.page=o),-1!=a&&(n.end.page=a),i.index===this.book.spine.last().index&&n.end.displayed.page>=n.end.displayed.total&&(n.atEnd=!0),e.index===this.book.spine.first().index&&1===n.start.displayed.page&&(n.atStart=!0),n}destroy(){this.manager&&this.manager.destroy(),this.book=void 0}passEvents(t){l.a.forEach(e=>{t.on(e,e=>this.triggerViewEvent(e,t))}),t.on(l.c.CONTENTS.SELECTED,e=>this.triggerSelectedEvent(e,t))}triggerViewEvent(t,e){this.emit(t.type,t,e)}triggerSelectedEvent(t,e){this.emit(l.c.RENDITION.SELECTED,t,e)}triggerMarkEvent(t,e,i){this.emit(l.c.RENDITION.MARK_CLICKED,t,e,i)}getRange(t,e){var i=new a.a(t),n=this.manager.visible().filter((function(t){if(i.spinePos===t.index)return!0}));if(n.length)return n[0].contents.range(i,e)}adjustImages(t){if(\"pre-paginated\"===this._layout.name)return new Promise((function(t){t()}));let e=t.window.getComputedStyle(t.content,null),i=.95*(t.content.offsetHeight-(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom))),n=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);return t.addStylesheetRules({img:{\"max-width\":(this._layout.columnWidth?this._layout.columnWidth-n+\"px\":\"100%\")+\"!important\",\"max-height\":i+\"px!important\",\"object-fit\":\"contain\",\"page-break-inside\":\"avoid\",\"break-inside\":\"avoid\",\"box-sizing\":\"border-box\"},svg:{\"max-width\":(this._layout.columnWidth?this._layout.columnWidth-n+\"px\":\"100%\")+\"!important\",\"max-height\":i+\"px!important\",\"page-break-inside\":\"avoid\",\"break-inside\":\"avoid\"}}),new Promise((function(t,e){setTimeout((function(){t()}),1)}))}getContents(){return this.manager?this.manager.getContents():[]}views(){return(this.manager?this.manager.views:void 0)||[]}handleLinks(t){t&&t.on(l.c.CONTENTS.LINK_CLICKED,t=>{let e=this.book.path.relative(t);this.display(e)})}injectStylesheet(t,e){let i=t.createElement(\"link\");i.setAttribute(\"type\",\"text/css\"),i.setAttribute(\"rel\",\"stylesheet\"),i.setAttribute(\"href\",this.settings.stylesheet),t.getElementsByTagName(\"head\")[0].appendChild(i)}injectScript(t,e){let i=t.createElement(\"script\");i.setAttribute(\"type\",\"text/javascript\"),i.setAttribute(\"src\",this.settings.script),i.textContent=\" \",t.getElementsByTagName(\"head\")[0].appendChild(i)}injectIdentifier(t,e){let i=this.book.packaging.metadata.identifier,n=t.createElement(\"meta\");n.setAttribute(\"name\",\"dc.relation.ispartof\"),i&&n.setAttribute(\"content\",i),t.getElementsByTagName(\"head\")[0].appendChild(n)}}s()(b.prototype);e.a=b},function(t,e){var i;i=function(){return this}();try{i=i||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(i=window)}t.exports=i},function(t,e,i){\"use strict\";var n=i(38)();t.exports=function(t){return t!==n&&null!==t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&(\"object\"==e||\"function\"==e)}},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(2),a=i(12),h=i(1),l=i(13);class c{constructor(t,e){this.settings=Object(r.extend)({ignoreClass:\"\",axis:void 0,direction:void 0,width:0,height:0,layout:void 0,globalLayoutProperties:{},method:void 0,forceRight:!1,allowScriptedContent:!1,allowPopups:!1},e||{}),this.id=\"epubjs-view-\"+Object(r.uuid)(),this.section=t,this.index=t.index,this.element=this.container(this.settings.axis),this.added=!1,this.displayed=!1,this.rendered=!1,this.fixedWidth=0,this.fixedHeight=0,this.epubcfi=new o.a,this.layout=this.settings.layout,this.pane=void 0,this.highlights={},this.underlines={},this.marks={}}container(t){var e=document.createElement(\"div\");return e.classList.add(\"epub-view\"),e.style.height=\"0px\",e.style.width=\"0px\",e.style.overflow=\"hidden\",e.style.position=\"relative\",e.style.display=\"block\",e.style.flex=t&&\"horizontal\"==t?\"none\":\"initial\",e}create(){return this.iframe||(this.element||(this.element=this.createContainer()),this.iframe=document.createElement(\"iframe\"),this.iframe.id=this.id,this.iframe.scrolling=\"no\",this.iframe.style.overflow=\"hidden\",this.iframe.seamless=\"seamless\",this.iframe.style.border=\"none\",this.iframe.sandbox=\"allow-same-origin\",this.settings.allowScriptedContent&&(this.iframe.sandbox+=\" allow-scripts\"),this.settings.allowPopups&&(this.iframe.sandbox+=\" allow-popups\"),this.iframe.setAttribute(\"enable-annotation\",\"true\"),this.resizing=!0,this.element.style.visibility=\"hidden\",this.iframe.style.visibility=\"hidden\",this.iframe.style.width=\"0\",this.iframe.style.height=\"0\",this._width=0,this._height=0,this.element.setAttribute(\"ref\",this.index),this.added=!0,this.elementBounds=Object(r.bounds)(this.element),\"srcdoc\"in this.iframe?this.supportsSrcdoc=!0:this.supportsSrcdoc=!1,this.settings.method||(this.settings.method=this.supportsSrcdoc?\"srcdoc\":\"write\")),this.iframe}render(t,e){return this.create(),this.size(),this.sectionRender||(this.sectionRender=this.section.render(t)),this.sectionRender.then(function(t){return this.load(t)}.bind(this)).then(function(){let t,e=this.contents.writingMode();return t=\"scrolled\"===this.settings.flow?0===e.indexOf(\"vertical\")?\"horizontal\":\"vertical\":0===e.indexOf(\"vertical\")?\"vertical\":\"horizontal\",0===e.indexOf(\"vertical\")&&\"paginated\"===this.settings.flow&&(this.layout.delta=this.layout.height),this.setAxis(t),this.emit(h.c.VIEWS.AXIS,t),this.setWritingMode(e),this.emit(h.c.VIEWS.WRITING_MODE,e),this.layout.format(this.contents,this.section,this.axis),this.addListeners(),new Promise((t,e)=>{this.expand(),this.settings.forceRight&&(this.element.style.marginLeft=this.width()+\"px\"),t()})}.bind(this),function(t){return this.emit(h.c.VIEWS.LOAD_ERROR,t),new Promise((e,i)=>{i(t)})}.bind(this)).then(function(){this.emit(h.c.VIEWS.RENDERED,this.section)}.bind(this))}reset(){this.iframe&&(this.iframe.style.width=\"0\",this.iframe.style.height=\"0\",this._width=0,this._height=0,this._textWidth=void 0,this._contentWidth=void 0,this._textHeight=void 0,this._contentHeight=void 0),this._needsReframe=!0}size(t,e){var i=t||this.settings.width,n=e||this.settings.height;\"pre-paginated\"===this.layout.name?this.lock(\"both\",i,n):\"horizontal\"===this.settings.axis?this.lock(\"height\",i,n):this.lock(\"width\",i,n),this.settings.width=i,this.settings.height=n}lock(t,e,i){var n,s=Object(r.borders)(this.element);n=this.iframe?Object(r.borders)(this.iframe):{width:0,height:0},\"width\"==t&&Object(r.isNumber)(e)&&(this.lockedWidth=e-s.width-n.width),\"height\"==t&&Object(r.isNumber)(i)&&(this.lockedHeight=i-s.height-n.height),\"both\"===t&&Object(r.isNumber)(e)&&Object(r.isNumber)(i)&&(this.lockedWidth=e-s.width-n.width,this.lockedHeight=i-s.height-n.height),this.displayed&&this.iframe&&this.expand()}expand(t){var e,i=this.lockedWidth,n=this.lockedHeight;this.iframe&&!this._expanding&&(this._expanding=!0,\"pre-paginated\"===this.layout.name?(i=this.layout.columnWidth,n=this.layout.height):\"horizontal\"===this.settings.axis?((i=this.contents.textWidth())%this.layout.pageWidth>0&&(i=Math.ceil(i/this.layout.pageWidth)*this.layout.pageWidth),this.settings.forceEvenPages&&(e=i/this.layout.pageWidth,this.layout.divisor>1&&\"reflowable\"===this.layout.name&&e%2>0&&(i+=this.layout.pageWidth))):\"vertical\"===this.settings.axis&&(n=this.contents.textHeight(),\"paginated\"===this.settings.flow&&n%this.layout.height>0&&(n=Math.ceil(n/this.layout.height)*this.layout.height)),(this._needsReframe||i!=this._width||n!=this._height)&&this.reframe(i,n),this._expanding=!1)}reframe(t,e){var i;Object(r.isNumber)(t)&&(this.element.style.width=t+\"px\",this.iframe.style.width=t+\"px\",this._width=t),Object(r.isNumber)(e)&&(this.element.style.height=e+\"px\",this.iframe.style.height=e+\"px\",this._height=e),i={width:t,height:e,widthDelta:this.prevBounds?t-this.prevBounds.width:t,heightDelta:this.prevBounds?e-this.prevBounds.height:e},this.pane&&this.pane.render(),requestAnimationFrame(()=>{let t;for(let e in this.marks)this.marks.hasOwnProperty(e)&&(t=this.marks[e],this.placeMark(t.element,t.range))}),this.onResize(this,i),this.emit(h.c.VIEWS.RESIZED,i),this.prevBounds=i,this.elementBounds=Object(r.bounds)(this.element)}load(t){var e=new r.defer,i=e.promise;if(!this.iframe)return e.reject(new Error(\"No Iframe Available\")),i;if(this.iframe.onload=function(t){this.onLoad(t,e)}.bind(this),\"blobUrl\"===this.settings.method)this.blobUrl=Object(r.createBlobUrl)(t,\"application/xhtml+xml\"),this.iframe.src=this.blobUrl,this.element.appendChild(this.iframe);else if(\"srcdoc\"===this.settings.method)this.iframe.srcdoc=t,this.element.appendChild(this.iframe);else{if(this.element.appendChild(this.iframe),this.document=this.iframe.contentDocument,!this.document)return e.reject(new Error(\"No Document Available\")),i;if(this.iframe.contentDocument.open(),window.MSApp&&MSApp.execUnsafeLocalFunction){var n=this;MSApp.execUnsafeLocalFunction((function(){n.iframe.contentDocument.write(t)}))}else this.iframe.contentDocument.write(t);this.iframe.contentDocument.close()}return i}onLoad(t,e){this.window=this.iframe.contentWindow,this.document=this.iframe.contentDocument,this.contents=new a.a(this.document,this.document.body,this.section.cfiBase,this.section.index),this.rendering=!1;var i=this.document.querySelector(\"link[rel='canonical']\");i?i.setAttribute(\"href\",this.section.canonical):((i=this.document.createElement(\"link\")).setAttribute(\"rel\",\"canonical\"),i.setAttribute(\"href\",this.section.canonical),this.document.querySelector(\"head\").appendChild(i)),this.contents.on(h.c.CONTENTS.EXPAND,()=>{this.displayed&&this.iframe&&(this.expand(),this.contents&&this.layout.format(this.contents))}),this.contents.on(h.c.CONTENTS.RESIZE,t=>{this.displayed&&this.iframe&&(this.expand(),this.contents&&this.layout.format(this.contents))}),e.resolve(this.contents)}setLayout(t){this.layout=t,this.contents&&(this.layout.format(this.contents),this.expand())}setAxis(t){this.settings.axis=t,this.element.style.flex=\"horizontal\"==t?\"none\":\"initial\",this.size()}setWritingMode(t){this.writingMode=t}addListeners(){}removeListeners(t){}display(t){var e=new r.defer;return this.displayed?e.resolve(this):this.render(t).then(function(){this.emit(h.c.VIEWS.DISPLAYED,this),this.onDisplayed(this),this.displayed=!0,e.resolve(this)}.bind(this),(function(t){e.reject(t,this)})),e.promise}show(){this.element.style.visibility=\"visible\",this.iframe&&(this.iframe.style.visibility=\"visible\",this.iframe.style.transform=\"translateZ(0)\",this.iframe.offsetWidth,this.iframe.style.transform=null),this.emit(h.c.VIEWS.SHOWN,this)}hide(){this.element.style.visibility=\"hidden\",this.iframe.style.visibility=\"hidden\",this.stopExpanding=!0,this.emit(h.c.VIEWS.HIDDEN,this)}offset(){return{top:this.element.offsetTop,left:this.element.offsetLeft}}width(){return this._width}height(){return this._height}position(){return this.element.getBoundingClientRect()}locationOf(t){this.iframe.getBoundingClientRect();var e=this.contents.locationOf(t,this.settings.ignoreClass);return{left:e.left,top:e.top}}onDisplayed(t){}onResize(t,e){}bounds(t){return!t&&this.elementBounds||(this.elementBounds=Object(r.bounds)(this.element)),this.elementBounds}highlight(t,e={},i,n=\"epubjs-hl\",s={}){if(!this.contents)return;const r=Object.assign({fill:\"yellow\",\"fill-opacity\":\"0.3\",\"mix-blend-mode\":\"multiply\"},s);let o=this.contents.range(t),a=()=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};e.epubcfi=t,this.pane||(this.pane=new l.Pane(this.iframe,this.element));let c=new l.Highlight(o,n,e,r),u=this.pane.addMark(c);return this.highlights[t]={mark:u,element:u.element,listeners:[a,i]},u.element.setAttribute(\"ref\",n),u.element.addEventListener(\"click\",a),u.element.addEventListener(\"touchstart\",a),i&&(u.element.addEventListener(\"click\",i),u.element.addEventListener(\"touchstart\",i)),u}underline(t,e={},i,n=\"epubjs-ul\",s={}){if(!this.contents)return;const r=Object.assign({stroke:\"black\",\"stroke-opacity\":\"0.3\",\"mix-blend-mode\":\"multiply\"},s);let o=this.contents.range(t),a=()=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};e.epubcfi=t,this.pane||(this.pane=new l.Pane(this.iframe,this.element));let c=new l.Underline(o,n,e,r),u=this.pane.addMark(c);return this.underlines[t]={mark:u,element:u.element,listeners:[a,i]},u.element.setAttribute(\"ref\",n),u.element.addEventListener(\"click\",a),u.element.addEventListener(\"touchstart\",a),i&&(u.element.addEventListener(\"click\",i),u.element.addEventListener(\"touchstart\",i)),u}mark(t,e={},i){if(!this.contents)return;if(t in this.marks){return this.marks[t]}let n=this.contents.range(t);if(!n)return;let s=n.commonAncestorContainer,r=1===s.nodeType?s:s.parentNode,o=i=>{this.emit(h.c.VIEWS.MARK_CLICKED,t,e)};n.collapsed&&1===s.nodeType?(n=new Range,n.selectNodeContents(s)):n.collapsed&&(n=new Range,n.selectNodeContents(r));let a=this.document.createElement(\"a\");return a.setAttribute(\"ref\",\"epubjs-mk\"),a.style.position=\"absolute\",a.dataset.epubcfi=t,e&&Object.keys(e).forEach(t=>{a.dataset[t]=e[t]}),i&&(a.addEventListener(\"click\",i),a.addEventListener(\"touchstart\",i)),a.addEventListener(\"click\",o),a.addEventListener(\"touchstart\",o),this.placeMark(a,n),this.element.appendChild(a),this.marks[t]={element:a,range:n,listeners:[o,i]},r}placeMark(t,e){let i,n,s;if(\"pre-paginated\"===this.layout.name||\"horizontal\"!==this.settings.axis){let t=e.getBoundingClientRect();i=t.top,n=t.right}else{let t,o=e.getClientRects();for(var r=0;r!=o.length;r++)t=o[r],(!s||t.left<s)&&(s=t.left,n=Math.ceil(s/this.layout.props.pageWidth)*this.layout.props.pageWidth-this.layout.gap/2,i=t.top)}t.style.top=i+\"px\",t.style.left=n+\"px\"}unhighlight(t){let e;t in this.highlights&&(e=this.highlights[t],this.pane.removeMark(e.mark),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.highlights[t])}ununderline(t){let e;t in this.underlines&&(e=this.underlines[t],this.pane.removeMark(e.mark),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.underlines[t])}unmark(t){let e;t in this.marks&&(e=this.marks[t],this.element.removeChild(e.element),e.listeners.forEach(t=>{t&&(e.element.removeEventListener(\"click\",t),e.element.removeEventListener(\"touchstart\",t))}),delete this.marks[t])}destroy(){for(let t in this.highlights)this.unhighlight(t);for(let t in this.underlines)this.ununderline(t);for(let t in this.marks)this.unmark(t);this.blobUrl&&Object(r.revokeBlobUrl)(this.blobUrl),this.displayed&&(this.displayed=!1,this.removeListeners(),this.contents.destroy(),this.stopExpanding=!0,this.element.removeChild(this.iframe),this.pane&&(this.pane.element.remove(),this.pane=void 0),this.iframe=void 0,this.contents=void 0,this._textWidth=null,this._textHeight=null,this._width=null,this._height=null)}}s()(c.prototype),e.a=c},function(t,e,i){var n=i(19),s=i(51),r=i(53),o=Math.max,a=Math.min;t.exports=function(t,e,i){var h,l,c,u,d,f,p=0,g=!1,m=!1,v=!0;if(\"function\"!=typeof t)throw new TypeError(\"Expected a function\");function y(e){var i=h,n=l;return h=l=void 0,p=e,u=t.apply(n,i)}function b(t){return p=t,d=setTimeout(x,e),g?y(t):u}function w(t){var i=t-f;return void 0===f||i>=e||i<0||m&&t-p>=c}function x(){var t=s();if(w(t))return E(t);d=setTimeout(x,function(t){var i=e-(t-f);return m?a(i,c-(t-p)):i}(t))}function E(t){return d=void 0,v&&h?y(t):(h=l=void 0,u)}function S(){var t=s(),i=w(t);if(h=arguments,l=this,f=t,i){if(void 0===d)return b(f);if(m)return clearTimeout(d),d=setTimeout(x,e),y(f)}return void 0===d&&(d=setTimeout(x,e)),u}return e=r(e)||0,n(i)&&(g=!!i.leading,c=(m=\"maxWait\"in i)?o(r(i.maxWait)||0,e):c,v=\"trailing\"in i?!!i.trailing:v),S.cancel=function(){void 0!==d&&clearTimeout(d),p=0,h=f=l=d=void 0},S.flush=function(){return void 0===d?u:E(s())},S}},function(t,e,i){\"use strict\";var n=i(0),s=i(10),r=i(1),o=i(3),a=i.n(o);const h=Math.PI/2,l={easeOutSine:function(t){return Math.sin(t*h)},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},easeInCubic:function(t){return Math.pow(t,3)}};class c{constructor(t,e){this.settings=Object(n.extend)({duration:80,minVelocity:.2,minDistance:10,easing:l.easeInCubic},e||{}),this.supportsTouch=this.supportsTouch(),this.supportsTouch&&this.setup(t)}setup(t){this.manager=t,this.layout=this.manager.layout,this.fullsize=this.manager.settings.fullsize,this.fullsize?(this.element=this.manager.stage.element,this.scroller=window,this.disableScroll()):(this.element=this.manager.stage.container,this.scroller=this.element,this.element.style.WebkitOverflowScrolling=\"touch\"),this.manager.settings.offset=this.layout.width,this.manager.settings.afterScrolledTimeout=2*this.settings.duration,this.isVertical=\"vertical\"===this.manager.settings.axis,this.manager.isPaginated&&!this.isVertical&&(this.touchCanceler=!1,this.resizeCanceler=!1,this.snapping=!1,this.scrollLeft,this.scrollTop,this.startTouchX=void 0,this.startTouchY=void 0,this.startTime=void 0,this.endTouchX=void 0,this.endTouchY=void 0,this.endTime=void 0,this.addListeners())}supportsTouch(){return!!(\"ontouchstart\"in window||window.DocumentTouch&&document instanceof DocumentTouch)}disableScroll(){this.element.style.overflow=\"hidden\"}enableScroll(){this.element.style.overflow=\"\"}addListeners(){this._onResize=this.onResize.bind(this),window.addEventListener(\"resize\",this._onResize),this._onScroll=this.onScroll.bind(this),this.scroller.addEventListener(\"scroll\",this._onScroll),this._onTouchStart=this.onTouchStart.bind(this),this.scroller.addEventListener(\"touchstart\",this._onTouchStart,{passive:!0}),this.on(\"touchstart\",this._onTouchStart),this._onTouchMove=this.onTouchMove.bind(this),this.scroller.addEventListener(\"touchmove\",this._onTouchMove,{passive:!0}),this.on(\"touchmove\",this._onTouchMove),this._onTouchEnd=this.onTouchEnd.bind(this),this.scroller.addEventListener(\"touchend\",this._onTouchEnd,{passive:!0}),this.on(\"touchend\",this._onTouchEnd),this._afterDisplayed=this.afterDisplayed.bind(this),this.manager.on(r.c.MANAGERS.ADDED,this._afterDisplayed)}removeListeners(){window.removeEventListener(\"resize\",this._onResize),this._onResize=void 0,this.scroller.removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0,this.scroller.removeEventListener(\"touchstart\",this._onTouchStart,{passive:!0}),this.off(\"touchstart\",this._onTouchStart),this._onTouchStart=void 0,this.scroller.removeEventListener(\"touchmove\",this._onTouchMove,{passive:!0}),this.off(\"touchmove\",this._onTouchMove),this._onTouchMove=void 0,this.scroller.removeEventListener(\"touchend\",this._onTouchEnd,{passive:!0}),this.off(\"touchend\",this._onTouchEnd),this._onTouchEnd=void 0,this.manager.off(r.c.MANAGERS.ADDED,this._afterDisplayed),this._afterDisplayed=void 0}afterDisplayed(t){let e=t.contents;[\"touchstart\",\"touchmove\",\"touchend\"].forEach(t=>{e.on(t,t=>this.triggerViewEvent(t,e))})}triggerViewEvent(t,e){this.emit(t.type,t,e)}onScroll(t){this.scrollLeft=this.fullsize?window.scrollX:this.scroller.scrollLeft,this.scrollTop=this.fullsize?window.scrollY:this.scroller.scrollTop}onResize(t){this.resizeCanceler=!0}onTouchStart(t){let{screenX:e,screenY:i}=t.touches[0];this.fullsize&&this.enableScroll(),this.touchCanceler=!0,this.startTouchX||(this.startTouchX=e,this.startTouchY=i,this.startTime=this.now()),this.endTouchX=e,this.endTouchY=i,this.endTime=this.now()}onTouchMove(t){let{screenX:e,screenY:i}=t.touches[0],n=Math.abs(i-this.endTouchY);this.touchCanceler=!0,!this.fullsize&&n<10&&(this.element.scrollLeft-=e-this.endTouchX),this.endTouchX=e,this.endTouchY=i,this.endTime=this.now()}onTouchEnd(t){this.fullsize&&this.disableScroll(),this.touchCanceler=!1;let e=this.wasSwiped();0!==e?this.snap(e):this.snap(),this.startTouchX=void 0,this.startTouchY=void 0,this.startTime=void 0,this.endTouchX=void 0,this.endTouchY=void 0,this.endTime=void 0}wasSwiped(){let t=this.layout.pageWidth*this.layout.divisor,e=this.endTouchX-this.startTouchX,i=Math.abs(e),n=e/(this.endTime-this.startTime),s=this.settings.minVelocity;return i<=this.settings.minDistance||i>=t?0:n>s?-1:n<-s?1:void 0}needsSnap(){return this.scrollLeft%(this.layout.pageWidth*this.layout.divisor)!=0}snap(t=0){let e=this.scrollLeft,i=this.layout.pageWidth*this.layout.divisor,n=Math.round(e/i)*i;return t&&(n+=t*i),this.smoothScrollTo(n)}smoothScrollTo(t){const e=new n.defer,i=this.scrollLeft,s=this.now(),r=this.settings.duration,o=this.settings.easing;return this.snapping=!0,function n(){const a=this.now(),h=Math.min(1,(a-s)/r);if(o(h),this.touchCanceler||this.resizeCanceler)return this.resizeCanceler=!1,this.snapping=!1,void e.resolve();h<1?(window.requestAnimationFrame(n.bind(this)),this.scrollTo(i+(t-i)*h,0)):(this.scrollTo(t,0),this.snapping=!1,e.resolve())}.call(this),e.promise}scrollTo(t=0,e=0){this.fullsize?window.scroll(t,e):(this.scroller.scrollLeft=t,this.scroller.scrollTop=e)}now(){return\"now\"in window.performance?performance.now():(new Date).getTime()}destroy(){this.scroller&&(this.fullsize&&this.enableScroll(),this.removeListeners(),this.scroller=void 0)}}a()(c.prototype);var u=c,d=i(21),f=i.n(d);class p extends s.a{constructor(t){super(t),this.name=\"continuous\",this.settings=Object(n.extend)(this.settings||{},{infinite:!0,overflow:void 0,axis:void 0,writingMode:void 0,flow:\"scrolled\",offset:500,offsetDelta:250,width:void 0,height:void 0,snap:!1,afterScrolledTimeout:10,allowScriptedContent:!1,allowPopups:!1}),Object(n.extend)(this.settings,t.settings||{}),\"undefined\"!=t.settings.gap&&0===t.settings.gap&&(this.settings.gap=t.settings.gap),this.viewSettings={ignoreClass:this.settings.ignoreClass,axis:this.settings.axis,flow:this.settings.flow,layout:this.layout,width:0,height:0,forceEvenPages:!1,allowScriptedContent:this.settings.allowScriptedContent,allowPopups:this.settings.allowPopups},this.scrollTop=0,this.scrollLeft=0}display(t,e){return s.a.prototype.display.call(this,t,e).then(function(){return this.fill()}.bind(this))}fill(t){var e=t||new n.defer;return this.q.enqueue(()=>this.check()).then(t=>{t?this.fill(e):e.resolve()}),e.promise}moveTo(t){var e=0,i=0;this.isPaginated?(e=Math.floor(t.left/this.layout.delta)*this.layout.delta,this.settings.offsetDelta):(i=t.top,t.top,this.settings.offsetDelta),(e>0||i>0)&&this.scrollBy(e,i,!0)}afterResized(t){this.emit(r.c.MANAGERS.RESIZE,t.section)}removeShownListeners(t){t.onDisplayed=function(){}}add(t){var e=this.createView(t);return this.views.append(e),e.on(r.c.VIEWS.RESIZED,t=>{e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),e.onDisplayed=this.afterDisplayed.bind(this),e.onResize=this.afterResized.bind(this),e.display(this.request)}append(t){var e=this.createView(t);return e.on(r.c.VIEWS.RESIZED,t=>{e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),this.views.append(e),e.onDisplayed=this.afterDisplayed.bind(this),e}prepend(t){var e=this.createView(t);return e.on(r.c.VIEWS.RESIZED,t=>{this.counter(t),e.expanded=!0}),e.on(r.c.VIEWS.AXIS,t=>{this.updateAxis(t)}),e.on(r.c.VIEWS.WRITING_MODE,t=>{this.updateWritingMode(t)}),this.views.prepend(e),e.onDisplayed=this.afterDisplayed.bind(this),e}counter(t){\"vertical\"===this.settings.axis?this.scrollBy(0,t.heightDelta,!0):this.scrollBy(t.widthDelta,0,!0)}update(t){for(var e,i=this.bounds(),s=this.views.all(),r=s.length,o=[],a=void 0!==t?t:this.settings.offset||0,h=new n.defer,l=[],c=0;c<r;c++)if(e=s[c],!0===this.isVisible(e,a,a,i)){if(e.displayed)e.show();else{let t=e.display(this.request).then((function(t){t.show()}),t=>{e.hide()});l.push(t)}o.push(e)}else this.q.enqueue(e.destroy.bind(e)),clearTimeout(this.trimTimeout),this.trimTimeout=setTimeout(function(){this.q.enqueue(this.trim.bind(this))}.bind(this),250);return l.length?Promise.all(l).catch(t=>{h.reject(t)}):(h.resolve(),h.promise)}check(t,e){var i=new n.defer,s=[],r=\"horizontal\"===this.settings.axis,o=this.settings.offset||0;t&&r&&(o=t),e&&!r&&(o=e);var a=this._bounds;let h=r?this.scrollLeft:this.scrollTop,l=r?Math.floor(a.width):a.height,c=r?this.container.scrollWidth:this.container.scrollHeight,u=this.writingMode&&0===this.writingMode.indexOf(\"vertical\")?\"vertical\":\"horizontal\",d=this.settings.rtlScrollType,f=\"rtl\"===this.settings.direction;this.settings.fullsize?(r&&f&&\"negative\"===d||!r&&f&&\"default\"===d)&&(h*=-1):(f&&\"default\"===d&&\"horizontal\"===u&&(h=c-l-h),f&&\"negative\"===d&&\"horizontal\"===u&&(h*=-1));let p=()=>{let t=this.views.first(),e=t&&t.section.prev();e&&s.push(this.prepend(e))},g=h-o;h+l+o>=c&&(()=>{let t=this.views.last(),e=t&&t.section.next();e&&s.push(this.append(e))})(),g<0&&p();let m=s.map(t=>t.display(this.request));return s.length?Promise.all(m).then(()=>this.check()).then(()=>this.update(o),t=>t):(this.q.enqueue(function(){this.update()}.bind(this)),i.resolve(!1),i.promise)}trim(){for(var t=new n.defer,e=this.views.displayed(),i=e[0],s=e[e.length-1],r=this.views.indexOf(i),o=this.views.indexOf(s),a=this.views.slice(0,r),h=this.views.slice(o+1),l=0;l<a.length-1;l++)this.erase(a[l],a);for(var c=1;c<h.length;c++)this.erase(h[c]);return t.resolve(),t.promise}erase(t,e){var i,n;this.settings.fullsize?(i=window.scrollY,n=window.scrollX):(i=this.container.scrollTop,n=this.container.scrollLeft);var s=t.bounds();this.views.remove(t),e&&(\"vertical\"===this.settings.axis?this.scrollTo(0,i-s.height,!0):\"rtl\"===this.settings.direction?this.settings.fullsize?this.scrollTo(n+Math.floor(s.width),0,!0):this.scrollTo(n,0,!0):this.scrollTo(n-Math.floor(s.width),0,!0))}addEventListeners(t){window.addEventListener(\"unload\",function(t){this.ignore=!0,this.destroy()}.bind(this)),this.addScrollListeners(),this.isPaginated&&this.settings.snap&&(this.snapper=new u(this,this.settings.snap&&\"object\"==typeof this.settings.snap&&this.settings.snap))}addScrollListeners(){var t;this.tick=n.requestAnimationFrame;let e=\"rtl\"===this.settings.direction&&\"default\"===this.settings.rtlScrollType?-1:1;this.scrollDeltaVert=0,this.scrollDeltaHorz=0,this.settings.fullsize?(t=window,this.scrollTop=window.scrollY*e,this.scrollLeft=window.scrollX*e):(t=this.container,this.scrollTop=this.container.scrollTop,this.scrollLeft=this.container.scrollLeft),this._onScroll=this.onScroll.bind(this),t.addEventListener(\"scroll\",this._onScroll),this._scrolled=f()(this.scrolled.bind(this),30),this.didScroll=!1}removeEventListeners(){(this.settings.fullsize?window:this.container).removeEventListener(\"scroll\",this._onScroll),this._onScroll=void 0}onScroll(){let t,e,i=\"rtl\"===this.settings.direction&&\"default\"===this.settings.rtlScrollType?-1:1;this.settings.fullsize?(t=window.scrollY*i,e=window.scrollX*i):(t=this.container.scrollTop,e=this.container.scrollLeft),this.scrollTop=t,this.scrollLeft=e,this.ignore?this.ignore=!1:this._scrolled(),this.scrollDeltaVert+=Math.abs(t-this.prevScrollTop),this.scrollDeltaHorz+=Math.abs(e-this.prevScrollLeft),this.prevScrollTop=t,this.prevScrollLeft=e,clearTimeout(this.scrollTimeout),this.scrollTimeout=setTimeout(function(){this.scrollDeltaVert=0,this.scrollDeltaHorz=0}.bind(this),150),clearTimeout(this.afterScrolled),this.didScroll=!1}scrolled(){this.q.enqueue(function(){return this.check()}.bind(this)),this.emit(r.c.MANAGERS.SCROLL,{top:this.scrollTop,left:this.scrollLeft}),clearTimeout(this.afterScrolled),this.afterScrolled=setTimeout(function(){this.snapper&&this.snapper.supportsTouch&&this.snapper.needsSnap()||this.emit(r.c.MANAGERS.SCROLLED,{top:this.scrollTop,left:this.scrollLeft})}.bind(this),this.settings.afterScrolledTimeout)}next(){let t=\"pre-paginated\"===this.layout.props.name&&this.layout.props.spread?2*this.layout.props.delta:this.layout.props.delta;this.views.length&&(this.isPaginated&&\"horizontal\"===this.settings.axis?this.scrollBy(t,0,!0):this.scrollBy(0,this.layout.height,!0),this.q.enqueue(function(){return this.check()}.bind(this)))}prev(){let t=\"pre-paginated\"===this.layout.props.name&&this.layout.props.spread?2*this.layout.props.delta:this.layout.props.delta;this.views.length&&(this.isPaginated&&\"horizontal\"===this.settings.axis?this.scrollBy(-t,0,!0):this.scrollBy(0,-this.layout.height,!0),this.q.enqueue(function(){return this.check()}.bind(this)))}updateFlow(t){this.rendered&&this.snapper&&(this.snapper.destroy(),this.snapper=void 0),super.updateFlow(t,\"scroll\"),this.rendered&&this.isPaginated&&this.settings.snap&&(this.snapper=new u(this,this.settings.snap&&\"object\"==typeof this.settings.snap&&this.settings.snap))}destroy(){super.destroy(),this.snapper&&this.snapper.destroy()}}e.a=p},function(t,e,i){(function(e){t.exports=function t(e,i,n){function s(o,a){if(!i[o]){if(!e[o]){if(r)return r(o,!0);var h=new Error(\"Cannot find module '\"+o+\"'\");throw h.code=\"MODULE_NOT_FOUND\",h}var l=i[o]={exports:{}};e[o][0].call(l.exports,(function(t){var i=e[o][1][t];return s(i||t)}),l,l.exports,t,e,i,n)}return i[o].exports}for(var r=!1,o=0;o<n.length;o++)s(n[o]);return s}({1:[function(t,i,n){(function(t){\"use strict\";var e,n,s=t.MutationObserver||t.WebKitMutationObserver;if(s){var r=0,o=new s(c),a=t.document.createTextNode(\"\");o.observe(a,{characterData:!0}),e=function(){a.data=r=++r%2}}else if(t.setImmediate||void 0===t.MessageChannel)e=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){c(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(c,0)};else{var h=new t.MessageChannel;h.port1.onmessage=c,e=function(){h.port2.postMessage(0)}}var l=[];function c(){var t,e;n=!0;for(var i=l.length;i;){for(e=l,l=[],t=-1;++t<i;)e[t]();i=l.length}n=!1}i.exports=function(t){1!==l.push(t)||n||e()}}).call(this,void 0!==e?e:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],2:[function(t,e,i){\"use strict\";var n=t(1);function s(){}var r={},o=[\"REJECTED\"],a=[\"FULFILLED\"],h=[\"PENDING\"];function l(t){if(\"function\"!=typeof t)throw new TypeError(\"resolver must be a function\");this.state=h,this.queue=[],this.outcome=void 0,t!==s&&f(this,t)}function c(t,e,i){this.promise=t,\"function\"==typeof e&&(this.onFulfilled=e,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof i&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}function u(t,e,i){n((function(){var n;try{n=e(i)}catch(e){return r.reject(t,e)}n===t?r.reject(t,new TypeError(\"Cannot resolve promise with itself\")):r.resolve(t,n)}))}function d(t){var e=t&&t.then;if(t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof e)return function(){e.apply(t,arguments)}}function f(t,e){var i=!1;function n(e){i||(i=!0,r.reject(t,e))}function s(e){i||(i=!0,r.resolve(t,e))}var o=p((function(){e(s,n)}));\"error\"===o.status&&n(o.value)}function p(t,e){var i={};try{i.value=t(e),i.status=\"success\"}catch(t){i.status=\"error\",i.value=t}return i}e.exports=l,l.prototype.catch=function(t){return this.then(null,t)},l.prototype.then=function(t,e){if(\"function\"!=typeof t&&this.state===a||\"function\"!=typeof e&&this.state===o)return this;var i=new this.constructor(s);return this.state!==h?u(i,this.state===a?t:e,this.outcome):this.queue.push(new c(i,t,e)),i},c.prototype.callFulfilled=function(t){r.resolve(this.promise,t)},c.prototype.otherCallFulfilled=function(t){u(this.promise,this.onFulfilled,t)},c.prototype.callRejected=function(t){r.reject(this.promise,t)},c.prototype.otherCallRejected=function(t){u(this.promise,this.onRejected,t)},r.resolve=function(t,e){var i=p(d,e);if(\"error\"===i.status)return r.reject(t,i.value);var n=i.value;if(n)f(t,n);else{t.state=a,t.outcome=e;for(var s=-1,o=t.queue.length;++s<o;)t.queue[s].callFulfilled(e)}return t},r.reject=function(t,e){t.state=o,t.outcome=e;for(var i=-1,n=t.queue.length;++i<n;)t.queue[i].callRejected(e);return t},l.resolve=function(t){return t instanceof this?t:r.resolve(new this(s),t)},l.reject=function(t){var e=new this(s);return r.reject(e,t)},l.all=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);for(var o=new Array(i),a=0,h=-1,l=new this(s);++h<i;)c(t[h],h);return l;function c(t,s){e.resolve(t).then((function(t){o[s]=t,++a!==i||n||(n=!0,r.resolve(l,o))}),(function(t){n||(n=!0,r.reject(l,t))}))}},l.race=function(t){var e=this;if(\"[object Array]\"!==Object.prototype.toString.call(t))return this.reject(new TypeError(\"must be an array\"));var i=t.length,n=!1;if(!i)return this.resolve([]);for(var o,a=-1,h=new this(s);++a<i;)o=t[a],e.resolve(o).then((function(t){n||(n=!0,r.resolve(h,t))}),(function(t){n||(n=!0,r.reject(h,t))}));return h}},{1:1}],3:[function(t,i,n){(function(e){\"use strict\";\"function\"!=typeof e.Promise&&(e.Promise=t(2))}).call(this,void 0!==e?e:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{2:2}],4:[function(t,e,i){\"use strict\";var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},s=function(){try{if(\"undefined\"!=typeof indexedDB)return indexedDB;if(\"undefined\"!=typeof webkitIndexedDB)return webkitIndexedDB;if(\"undefined\"!=typeof mozIndexedDB)return mozIndexedDB;if(\"undefined\"!=typeof OIndexedDB)return OIndexedDB;if(\"undefined\"!=typeof msIndexedDB)return msIndexedDB}catch(t){return}}();function r(t,e){t=t||[],e=e||{};try{return new Blob(t,e)}catch(s){if(\"TypeError\"!==s.name)throw s;for(var i=new(\"undefined\"!=typeof BlobBuilder?BlobBuilder:\"undefined\"!=typeof MSBlobBuilder?MSBlobBuilder:\"undefined\"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<t.length;n+=1)i.append(t[n]);return i.getBlob(e.type)}}\"undefined\"==typeof Promise&&t(3);var o=Promise;function a(t,e){e&&t.then((function(t){e(null,t)}),(function(t){e(t)}))}function h(t,e,i){\"function\"==typeof e&&t.then(e),\"function\"==typeof i&&t.catch(i)}function l(t){return\"string\"!=typeof t&&(console.warn(t+\" used as a key, but it is not a string.\"),t=String(t)),t}function c(){if(arguments.length&&\"function\"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var u=void 0,d={},f=Object.prototype.toString;function p(t){return\"boolean\"==typeof u?o.resolve(u):function(t){return new o((function(e){var i=t.transaction(\"local-forage-detect-blob-support\",\"readwrite\"),n=r([\"\"]);i.objectStore(\"local-forage-detect-blob-support\").put(n,\"key\"),i.onabort=function(t){t.preventDefault(),t.stopPropagation(),e(!1)},i.oncomplete=function(){var t=navigator.userAgent.match(/Chrome\\/(\\d+)/),i=navigator.userAgent.match(/Edge\\//);e(i||!t||parseInt(t[1],10)>=43)}})).catch((function(){return!1}))}(t).then((function(t){return u=t}))}function g(t){var e=d[t.name],i={};i.promise=new o((function(t,e){i.resolve=t,i.reject=e})),e.deferredOperations.push(i),e.dbReady?e.dbReady=e.dbReady.then((function(){return i.promise})):e.dbReady=i.promise}function m(t){var e=d[t.name].deferredOperations.pop();if(e)return e.resolve(),e.promise}function v(t,e){var i=d[t.name].deferredOperations.pop();if(i)return i.reject(e),i.promise}function y(t,e){return new o((function(i,n){if(d[t.name]=d[t.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},t.db){if(!e)return i(t.db);g(t),t.db.close()}var r=[t.name];e&&r.push(t.version);var o=s.open.apply(s,r);e&&(o.onupgradeneeded=function(e){var i=o.result;try{i.createObjectStore(t.storeName),e.oldVersion<=1&&i.createObjectStore(\"local-forage-detect-blob-support\")}catch(i){if(\"ConstraintError\"!==i.name)throw i;console.warn('The database \"'+t.name+'\" has been upgraded from version '+e.oldVersion+\" to version \"+e.newVersion+', but the storage \"'+t.storeName+'\" already exists.')}}),o.onerror=function(t){t.preventDefault(),n(o.error)},o.onsuccess=function(){var e=o.result;e.onversionchange=function(t){t.target.close()},i(e),m(t)}}))}function b(t){return y(t,!1)}function w(t){return y(t,!0)}function x(t,e){if(!t.db)return!0;var i=!t.db.objectStoreNames.contains(t.storeName),n=t.version<t.db.version,s=t.version>t.db.version;if(n&&(t.version!==e&&console.warn('The database \"'+t.name+\"\\\" can't be downgraded from version \"+t.db.version+\" to version \"+t.version+\".\"),t.version=t.db.version),s||i){if(i){var r=t.db.version+1;r>t.version&&(t.version=r)}return!0}return!1}function E(t){return r([function(t){for(var e=t.length,i=new ArrayBuffer(e),n=new Uint8Array(i),s=0;s<e;s++)n[s]=t.charCodeAt(s);return i}(atob(t.data))],{type:t.type})}function S(t){return t&&t.__local_forage_encoded_blob}function N(t){var e=this,i=e._initReady().then((function(){var t=d[e._dbInfo.name];if(t&&t.dbReady)return t.dbReady}));return h(i,t,t),i}function _(t,e,i,n){void 0===n&&(n=1);try{var s=t.db.transaction(t.storeName,e);i(null,s)}catch(s){if(n>0&&(!t.db||\"InvalidStateError\"===s.name||\"NotFoundError\"===s.name))return o.resolve().then((function(){if(!t.db||\"NotFoundError\"===s.name&&!t.db.objectStoreNames.contains(t.storeName)&&t.version<=t.db.version)return t.db&&(t.version=t.db.version+1),w(t)})).then((function(){return function(t){g(t);for(var e=d[t.name],i=e.forages,n=0;n<i.length;n++){var s=i[n];s._dbInfo.db&&(s._dbInfo.db.close(),s._dbInfo.db=null)}return t.db=null,b(t).then((function(e){return t.db=e,x(t)?w(t):e})).then((function(n){t.db=e.db=n;for(var s=0;s<i.length;s++)i[s]._dbInfo.db=n})).catch((function(e){throw v(t,e),e}))}(t).then((function(){_(t,e,i,n-1)}))})).catch(i);i(s)}}var T={_driver:\"asyncStorage\",_initStorage:function(t){var e=this,i={db:null};if(t)for(var n in t)i[n]=t[n];var s=d[i.name];s||(s={forages:[],db:null,dbReady:null,deferredOperations:[]},d[i.name]=s),s.forages.push(e),e._initReady||(e._initReady=e.ready,e.ready=N);var r=[];function a(){return o.resolve()}for(var h=0;h<s.forages.length;h++){var l=s.forages[h];l!==e&&r.push(l._initReady().catch(a))}var c=s.forages.slice(0);return o.all(r).then((function(){return i.db=s.db,b(i)})).then((function(t){return i.db=t,x(i,e._defaultConfig.version)?w(i):t})).then((function(t){i.db=s.db=t,e._dbInfo=i;for(var n=0;n<c.length;n++){var r=c[n];r!==e&&(r._dbInfo.db=i.db,r._dbInfo.version=i.version)}}))},_support:function(){try{if(!s||!s.open)return!1;var t=\"undefined\"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),e=\"function\"==typeof fetch&&-1!==fetch.toString().indexOf(\"[native code\");return(!t||e)&&\"undefined\"!=typeof indexedDB&&\"undefined\"!=typeof IDBKeyRange}catch(t){return!1}}(),iterate:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).openCursor(),a=1;o.onsuccess=function(){var i=o.result;if(i){var n=i.value;S(n)&&(n=E(n));var s=t(n,i.key,a++);void 0!==s?e(s):i.continue()}else e()},o.onerror=function(){n(o.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).get(t);o.onsuccess=function(){var t=o.result;void 0===t&&(t=null),S(t)&&(t=E(t)),e(t)},o.onerror=function(){n(o.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},setItem:function(t,e,i){var n=this;t=l(t);var s=new o((function(i,s){var r;n.ready().then((function(){return r=n._dbInfo,\"[object Blob]\"===f.call(e)?p(r.db).then((function(t){return t?e:(i=e,new o((function(t,e){var n=new FileReader;n.onerror=e,n.onloadend=function(e){var n=btoa(e.target.result||\"\");t({__local_forage_encoded_blob:!0,data:n,type:i.type})},n.readAsBinaryString(i)})));var i})):e})).then((function(e){_(n._dbInfo,\"readwrite\",(function(r,o){if(r)return s(r);try{var a=o.objectStore(n._dbInfo.storeName);null===e&&(e=void 0);var h=a.put(e,t);o.oncomplete=function(){void 0===e&&(e=null),i(e)},o.onabort=o.onerror=function(){var t=h.error?h.error:h.transaction.error;s(t)}}catch(t){s(t)}}))})).catch(s)}));return a(s,i),s},removeItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){_(i._dbInfo,\"readwrite\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName).delete(t);r.oncomplete=function(){e()},r.onerror=function(){n(o.error)},r.onabort=function(){var t=o.error?o.error:o.transaction.error;n(t)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},clear:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readwrite\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).clear();s.oncomplete=function(){t()},s.onabort=s.onerror=function(){var t=r.error?r.error:r.transaction.error;i(t)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},length:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readonly\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).count();r.onsuccess=function(){t(r.result)},r.onerror=function(){i(r.error)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},key:function(t,e){var i=this,n=new o((function(e,n){t<0?e(null):i.ready().then((function(){_(i._dbInfo,\"readonly\",(function(s,r){if(s)return n(s);try{var o=r.objectStore(i._dbInfo.storeName),a=!1,h=o.openKeyCursor();h.onsuccess=function(){var i=h.result;i?0===t||a?e(i.key):(a=!0,i.advance(t)):e(null)},h.onerror=function(){n(h.error)}}catch(t){n(t)}}))})).catch(n)}));return a(n,e),n},keys:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){_(e._dbInfo,\"readonly\",(function(n,s){if(n)return i(n);try{var r=s.objectStore(e._dbInfo.storeName).openKeyCursor(),o=[];r.onsuccess=function(){var e=r.result;e?(o.push(e.key),e.continue()):t(o)},r.onerror=function(){i(r.error)}}catch(t){i(t)}}))})).catch(i)}));return a(i,t),i},dropInstance:function(t,e){e=c.apply(this,arguments);var i=this.config();(t=\"function\"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName);var n,r=this;if(t.name){var h=t.name===i.name&&r._dbInfo.db,l=h?o.resolve(r._dbInfo.db):b(t).then((function(e){var i=d[t.name],n=i.forages;i.db=e;for(var s=0;s<n.length;s++)n[s]._dbInfo.db=e;return e}));n=t.storeName?l.then((function(e){if(e.objectStoreNames.contains(t.storeName)){var i=e.version+1;g(t);var n=d[t.name],r=n.forages;e.close();for(var a=0;a<r.length;a++){var h=r[a];h._dbInfo.db=null,h._dbInfo.version=i}return new o((function(e,n){var r=s.open(t.name,i);r.onerror=function(t){r.result.close(),n(t)},r.onupgradeneeded=function(){r.result.deleteObjectStore(t.storeName)},r.onsuccess=function(){var t=r.result;t.close(),e(t)}})).then((function(t){n.db=t;for(var e=0;e<r.length;e++){var i=r[e];i._dbInfo.db=t,m(i._dbInfo)}})).catch((function(e){throw(v(t,e)||o.resolve()).catch((function(){})),e}))}})):l.then((function(e){g(t);var i=d[t.name],n=i.forages;e.close();for(var r=0;r<n.length;r++)n[r]._dbInfo.db=null;return new o((function(e,i){var n=s.deleteDatabase(t.name);n.onerror=function(){var t=n.result;t&&t.close(),i(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database \"'+t.name+'\" until all open connections are closed')},n.onsuccess=function(){var t=n.result;t&&t.close(),e(t)}})).then((function(t){i.db=t;for(var e=0;e<n.length;e++)m(n[e]._dbInfo)})).catch((function(e){throw(v(t,e)||o.resolve()).catch((function(){})),e}))}))}else n=o.reject(\"Invalid arguments\");return a(n,e),n}},C=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",O=/^~~local_forage_type~([^~]+)~/,I=\"__lfsc__:\".length,R=I+\"arbf\".length,k=Object.prototype.toString;function A(t){var e,i,n,s,r,o=.75*t.length,a=t.length,h=0;\"=\"===t[t.length-1]&&(o--,\"=\"===t[t.length-2]&&o--);var l=new ArrayBuffer(o),c=new Uint8Array(l);for(e=0;e<a;e+=4)i=C.indexOf(t[e]),n=C.indexOf(t[e+1]),s=C.indexOf(t[e+2]),r=C.indexOf(t[e+3]),c[h++]=i<<2|n>>4,c[h++]=(15&n)<<4|s>>2,c[h++]=(3&s)<<6|63&r;return l}function L(t){var e,i=new Uint8Array(t),n=\"\";for(e=0;e<i.length;e+=3)n+=C[i[e]>>2],n+=C[(3&i[e])<<4|i[e+1]>>4],n+=C[(15&i[e+1])<<2|i[e+2]>>6],n+=C[63&i[e+2]];return i.length%3==2?n=n.substring(0,n.length-1)+\"=\":i.length%3==1&&(n=n.substring(0,n.length-2)+\"==\"),n}var j={serialize:function(t,e){var i=\"\";if(t&&(i=k.call(t)),t&&(\"[object ArrayBuffer]\"===i||t.buffer&&\"[object ArrayBuffer]\"===k.call(t.buffer))){var n,s=\"__lfsc__:\";t instanceof ArrayBuffer?(n=t,s+=\"arbf\"):(n=t.buffer,\"[object Int8Array]\"===i?s+=\"si08\":\"[object Uint8Array]\"===i?s+=\"ui08\":\"[object Uint8ClampedArray]\"===i?s+=\"uic8\":\"[object Int16Array]\"===i?s+=\"si16\":\"[object Uint16Array]\"===i?s+=\"ur16\":\"[object Int32Array]\"===i?s+=\"si32\":\"[object Uint32Array]\"===i?s+=\"ui32\":\"[object Float32Array]\"===i?s+=\"fl32\":\"[object Float64Array]\"===i?s+=\"fl64\":e(new Error(\"Failed to get type for BinaryArray\"))),e(s+L(n))}else if(\"[object Blob]\"===i){var r=new FileReader;r.onload=function(){var i=\"~~local_forage_type~\"+t.type+\"~\"+L(this.result);e(\"__lfsc__:blob\"+i)},r.readAsArrayBuffer(t)}else try{e(JSON.stringify(t))}catch(i){console.error(\"Couldn't convert value into a JSON string: \",t),e(null,i)}},deserialize:function(t){if(\"__lfsc__:\"!==t.substring(0,I))return JSON.parse(t);var e,i=t.substring(R),n=t.substring(I,R);if(\"blob\"===n&&O.test(i)){var s=i.match(O);e=s[1],i=i.substring(s[0].length)}var o=A(i);switch(n){case\"arbf\":return o;case\"blob\":return r([o],{type:e});case\"si08\":return new Int8Array(o);case\"ui08\":return new Uint8Array(o);case\"uic8\":return new Uint8ClampedArray(o);case\"si16\":return new Int16Array(o);case\"ur16\":return new Uint16Array(o);case\"si32\":return new Int32Array(o);case\"ui32\":return new Uint32Array(o);case\"fl32\":return new Float32Array(o);case\"fl64\":return new Float64Array(o);default:throw new Error(\"Unkown type: \"+n)}},stringToBuffer:A,bufferToString:L};function D(t,e,i,n){t.executeSql(\"CREATE TABLE IF NOT EXISTS \"+e.storeName+\" (id INTEGER PRIMARY KEY, key unique, value)\",[],i,n)}function P(t,e,i,n,s,r){t.executeSql(i,n,s,(function(t,o){o.code===o.SYNTAX_ERR?t.executeSql(\"SELECT name FROM sqlite_master WHERE type='table' AND name = ?\",[e.storeName],(function(t,a){a.rows.length?r(t,o):D(t,e,(function(){t.executeSql(i,n,s,r)}),r)}),r):r(t,o)}),r)}function M(t,e,i,n){var s=this;t=l(t);var r=new o((function(r,o){s.ready().then((function(){void 0===e&&(e=null);var a=e,h=s._dbInfo;h.serializer.serialize(e,(function(e,l){l?o(l):h.db.transaction((function(i){P(i,h,\"INSERT OR REPLACE INTO \"+h.storeName+\" (key, value) VALUES (?, ?)\",[t,e],(function(){r(a)}),(function(t,e){o(e)}))}),(function(e){if(e.code===e.QUOTA_ERR){if(n>0)return void r(M.apply(s,[t,a,i,n-1]));o(e)}}))}))})).catch(o)}));return a(r,i),r}function z(t){return new o((function(e,i){t.transaction((function(n){n.executeSql(\"SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\",[],(function(i,n){for(var s=[],r=0;r<n.rows.length;r++)s.push(n.rows.item(r).name);e({db:t,storeNames:s})}),(function(t,e){i(e)}))}),(function(t){i(t)}))}))}var B={_driver:\"webSQLStorage\",_initStorage:function(t){var e=this,i={db:null};if(t)for(var n in t)i[n]=\"string\"!=typeof t[n]?t[n].toString():t[n];var s=new o((function(t,n){try{i.db=openDatabase(i.name,String(i.version),i.description,i.size)}catch(t){return n(t)}i.db.transaction((function(s){D(s,i,(function(){e._dbInfo=i,t()}),(function(t,e){n(e)}))}),n)}));return i.serializer=j,s},_support:\"function\"==typeof openDatabase,iterate:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT * FROM \"+s.storeName,[],(function(i,n){for(var r=n.rows,o=r.length,a=0;a<o;a++){var h=r.item(a),l=h.value;if(l&&(l=s.serializer.deserialize(l)),void 0!==(l=t(l,h.key,a+1)))return void e(l)}e()}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT * FROM \"+s.storeName+\" WHERE key = ? LIMIT 1\",[t],(function(t,i){var n=i.rows.length?i.rows.item(0).value:null;n&&(n=s.serializer.deserialize(n)),e(n)}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},setItem:function(t,e,i){return M.apply(this,[t,e,i,1])},removeItem:function(t,e){var i=this;t=l(t);var n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"DELETE FROM \"+s.storeName+\" WHERE key = ?\",[t],(function(){e()}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},clear:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"DELETE FROM \"+n.storeName,[],(function(){t()}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},length:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"SELECT COUNT(key) as c FROM \"+n.storeName,[],(function(e,i){var n=i.rows.item(0).c;t(n)}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},key:function(t,e){var i=this,n=new o((function(e,n){i.ready().then((function(){var s=i._dbInfo;s.db.transaction((function(i){P(i,s,\"SELECT key FROM \"+s.storeName+\" WHERE id = ? LIMIT 1\",[t+1],(function(t,i){var n=i.rows.length?i.rows.item(0).key:null;e(n)}),(function(t,e){n(e)}))}))})).catch(n)}));return a(n,e),n},keys:function(t){var e=this,i=new o((function(t,i){e.ready().then((function(){var n=e._dbInfo;n.db.transaction((function(e){P(e,n,\"SELECT key FROM \"+n.storeName,[],(function(e,i){for(var n=[],s=0;s<i.rows.length;s++)n.push(i.rows.item(s).key);t(n)}),(function(t,e){i(e)}))}))})).catch(i)}));return a(i,t),i},dropInstance:function(t,e){e=c.apply(this,arguments);var i=this.config();(t=\"function\"!=typeof t&&t||{}).name||(t.name=t.name||i.name,t.storeName=t.storeName||i.storeName);var n,s=this;return a(n=t.name?new o((function(e){var n;n=t.name===i.name?s._dbInfo.db:openDatabase(t.name,\"\",\"\",0),t.storeName?e({db:n,storeNames:[t.storeName]}):e(z(n))})).then((function(t){return new o((function(e,i){t.db.transaction((function(n){function s(t){return new o((function(e,i){n.executeSql(\"DROP TABLE IF EXISTS \"+t,[],(function(){e()}),(function(t,e){i(e)}))}))}for(var r=[],a=0,h=t.storeNames.length;a<h;a++)r.push(s(t.storeNames[a]));o.all(r).then((function(){e()})).catch((function(t){i(t)}))}),(function(t){i(t)}))}))})):o.reject(\"Invalid arguments\"),e),n}};function q(t,e){var i=t.name+\"/\";return t.storeName!==e.storeName&&(i+=t.storeName+\"/\"),i}function F(){return!function(){try{return localStorage.setItem(\"_localforage_support_test\",!0),localStorage.removeItem(\"_localforage_support_test\"),!1}catch(t){return!0}}()||localStorage.length>0}var U={_driver:\"localStorageWrapper\",_initStorage:function(t){var e={};if(t)for(var i in t)e[i]=t[i];return e.keyPrefix=q(t,this._defaultConfig),F()?(this._dbInfo=e,e.serializer=j,o.resolve()):o.reject()},_support:function(){try{return\"undefined\"!=typeof localStorage&&\"setItem\"in localStorage&&!!localStorage.setItem}catch(t){return!1}}(),iterate:function(t,e){var i=this,n=i.ready().then((function(){for(var e=i._dbInfo,n=e.keyPrefix,s=n.length,r=localStorage.length,o=1,a=0;a<r;a++){var h=localStorage.key(a);if(0===h.indexOf(n)){var l=localStorage.getItem(h);if(l&&(l=e.serializer.deserialize(l)),void 0!==(l=t(l,h.substring(s),o++)))return l}}}));return a(n,e),n},getItem:function(t,e){var i=this;t=l(t);var n=i.ready().then((function(){var e=i._dbInfo,n=localStorage.getItem(e.keyPrefix+t);return n&&(n=e.serializer.deserialize(n)),n}));return a(n,e),n},setItem:function(t,e,i){var n=this;t=l(t);var s=n.ready().then((function(){void 0===e&&(e=null);var i=e;return new o((function(s,r){var o=n._dbInfo;o.serializer.serialize(e,(function(e,n){if(n)r(n);else try{localStorage.setItem(o.keyPrefix+t,e),s(i)}catch(t){\"QuotaExceededError\"!==t.name&&\"NS_ERROR_DOM_QUOTA_REACHED\"!==t.name||r(t),r(t)}}))}))}));return a(s,i),s},removeItem:function(t,e){var i=this;t=l(t);var n=i.ready().then((function(){var e=i._dbInfo;localStorage.removeItem(e.keyPrefix+t)}));return a(n,e),n},clear:function(t){var e=this,i=e.ready().then((function(){for(var t=e._dbInfo.keyPrefix,i=localStorage.length-1;i>=0;i--){var n=localStorage.key(i);0===n.indexOf(t)&&localStorage.removeItem(n)}}));return a(i,t),i},length:function(t){var e=this.keys().then((function(t){return t.length}));return a(e,t),e},key:function(t,e){var i=this,n=i.ready().then((function(){var e,n=i._dbInfo;try{e=localStorage.key(t)}catch(t){e=null}return e&&(e=e.substring(n.keyPrefix.length)),e}));return a(n,e),n},keys:function(t){var e=this,i=e.ready().then((function(){for(var t=e._dbInfo,i=localStorage.length,n=[],s=0;s<i;s++){var r=localStorage.key(s);0===r.indexOf(t.keyPrefix)&&n.push(r.substring(t.keyPrefix.length))}return n}));return a(i,t),i},dropInstance:function(t,e){if(e=c.apply(this,arguments),!(t=\"function\"!=typeof t&&t||{}).name){var i=this.config();t.name=t.name||i.name,t.storeName=t.storeName||i.storeName}var n,s=this;return a(n=t.name?new o((function(e){t.storeName?e(q(t,s._defaultConfig)):e(t.name+\"/\")})).then((function(t){for(var e=localStorage.length-1;e>=0;e--){var i=localStorage.key(e);0===i.indexOf(t)&&localStorage.removeItem(i)}})):o.reject(\"Invalid arguments\"),e),n}},W=function(t,e){for(var i,n,s=t.length,r=0;r<s;){if((i=t[r])===(n=e)||\"number\"==typeof i&&\"number\"==typeof n&&isNaN(i)&&isNaN(n))return!0;r++}return!1},H=Array.isArray||function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},V={},X={},G={INDEXEDDB:T,WEBSQL:B,LOCALSTORAGE:U},Y=[G.INDEXEDDB._driver,G.WEBSQL._driver,G.LOCALSTORAGE._driver],$=[\"dropInstance\"],K=[\"clear\",\"getItem\",\"iterate\",\"key\",\"keys\",\"length\",\"removeItem\",\"setItem\"].concat($),Z={description:\"\",driver:Y.slice(),name:\"localforage\",size:4980736,storeName:\"keyvaluepairs\",version:1};function J(t,e){t[e]=function(){var i=arguments;return t.ready().then((function(){return t[e].apply(t,i)}))}}function Q(){for(var t=1;t<arguments.length;t++){var e=arguments[t];if(e)for(var i in e)e.hasOwnProperty(i)&&(H(e[i])?arguments[0][i]=e[i].slice():arguments[0][i]=e[i])}return arguments[0]}var tt=new(function(){function t(e){for(var i in function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),G)if(G.hasOwnProperty(i)){var n=G[i],s=n._driver;this[i]=s,V[s]||this.defineDriver(n)}this._defaultConfig=Q({},Z),this._config=Q({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return t.prototype.config=function(t){if(\"object\"===(void 0===t?\"undefined\":n(t))){if(this._ready)return new Error(\"Can't call config() after localforage has been used.\");for(var e in t){if(\"storeName\"===e&&(t[e]=t[e].replace(/\\W/g,\"_\")),\"version\"===e&&\"number\"!=typeof t[e])return new Error(\"Database version must be a number.\");this._config[e]=t[e]}return!(\"driver\"in t)||!t.driver||this.setDriver(this._config.driver)}return\"string\"==typeof t?this._config[t]:this._config},t.prototype.defineDriver=function(t,e,i){var n=new o((function(e,i){try{var n=t._driver,s=new Error(\"Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver\");if(!t._driver)return void i(s);for(var r=K.concat(\"_initStorage\"),h=0,l=r.length;h<l;h++){var c=r[h];if((!W($,c)||t[c])&&\"function\"!=typeof t[c])return void i(s)}!function(){for(var e=function(t){return function(){var e=new Error(\"Method \"+t+\" is not implemented by the current driver\"),i=o.reject(e);return a(i,arguments[arguments.length-1]),i}},i=0,n=$.length;i<n;i++){var s=$[i];t[s]||(t[s]=e(s))}}();var u=function(i){V[n]&&console.info(\"Redefining LocalForage driver: \"+n),V[n]=t,X[n]=i,e()};\"_support\"in t?t._support&&\"function\"==typeof t._support?t._support().then(u,i):u(!!t._support):u(!0)}catch(t){i(t)}}));return h(n,e,i),n},t.prototype.driver=function(){return this._driver||null},t.prototype.getDriver=function(t,e,i){var n=V[t]?o.resolve(V[t]):o.reject(new Error(\"Driver not found.\"));return h(n,e,i),n},t.prototype.getSerializer=function(t){var e=o.resolve(j);return h(e,t),e},t.prototype.ready=function(t){var e=this,i=e._driverSet.then((function(){return null===e._ready&&(e._ready=e._initDriver()),e._ready}));return h(i,t,t),i},t.prototype.setDriver=function(t,e,i){var n=this;H(t)||(t=[t]);var s=this._getSupportedDrivers(t);function r(){n._config.driver=n.driver()}function a(t){return n._extend(t),r(),n._ready=n._initStorage(n._config),n._ready}var l=null!==this._driverSet?this._driverSet.catch((function(){return o.resolve()})):o.resolve();return this._driverSet=l.then((function(){var t=s[0];return n._dbInfo=null,n._ready=null,n.getDriver(t).then((function(t){n._driver=t._driver,r(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(t){return function(){var e=0;return function i(){for(;e<t.length;){var s=t[e];return e++,n._dbInfo=null,n._ready=null,n.getDriver(s).then(a).catch(i)}r();var h=new Error(\"No available storage method found.\");return n._driverSet=o.reject(h),n._driverSet}()}}(s)}))})).catch((function(){r();var t=new Error(\"No available storage method found.\");return n._driverSet=o.reject(t),n._driverSet})),h(this._driverSet,e,i),this._driverSet},t.prototype.supports=function(t){return!!X[t]},t.prototype._extend=function(t){Q(this,t)},t.prototype._getSupportedDrivers=function(t){for(var e=[],i=0,n=t.length;i<n;i++){var s=t[i];this.supports(s)&&e.push(s)}return e},t.prototype._wrapLibraryMethodsWithReady=function(){for(var t=0,e=K.length;t<e;t++)J(this,K[t])},t.prototype.createInstance=function(e){return new t(e)},t}());e.exports=tt},{3:3}]},{},[4])(4)}).call(this,i(17))},function(t,e,i){\"use strict\";var n=i(3),s=i.n(n),r=i(0),o=i(5),a=i(4),h=i(2),l=i(6),c=i(8);var u=function(t,e,i,n){var s,o=\"undefined\"!=typeof window&&window.URL,h=o?\"blob\":\"arraybuffer\",l=new r.defer,c=new XMLHttpRequest,u=XMLHttpRequest.prototype;for(s in\"overrideMimeType\"in u||Object.defineProperty(u,\"overrideMimeType\",{value:function(){}}),i&&(c.withCredentials=!0),c.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE){var t=!1;if(\"\"!==this.responseType&&\"document\"!==this.responseType||(t=this.responseXML),200===this.status||0===this.status||t){var i;if(!this.response&&!t)return l.reject({status:this.status,message:\"Empty Response\",stack:(new Error).stack}),l.promise;if(403===this.status)return l.reject({status:this.status,response:this.response,message:\"Forbidden\",stack:(new Error).stack}),l.promise;i=t?this.responseXML:Object(r.isXml)(e)?Object(r.parse)(this.response,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(this.response,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(this.response,\"text/html\"):\"json\"==e?JSON.parse(this.response):\"blob\"==e?o?this.response:new Blob([this.response]):this.response,l.resolve(i)}else l.reject({status:this.status,message:this.response,stack:(new Error).stack})}},c.onerror=function(t){l.reject(t)},c.open(\"GET\",t,!0),n)c.setRequestHeader(s,n[s]);return\"json\"==e&&c.setRequestHeader(\"Accept\",\"application/json\"),e||(e=new a.a(t).extension),\"blob\"==e&&(c.responseType=h),Object(r.isXml)(e)&&c.overrideMimeType(\"text/xml\"),\"binary\"==e&&(c.responseType=\"arraybuffer\"),c.send(),l.promise},d=i(15);var f=class{constructor(t,e){this.idref=t.idref,this.linear=\"yes\"===t.linear,this.properties=t.properties,this.index=t.index,this.href=t.href,this.url=t.url,this.canonical=t.canonical,this.next=t.next,this.prev=t.prev,this.cfiBase=t.cfiBase,e?this.hooks=e:(this.hooks={},this.hooks.serialize=new l.a(this),this.hooks.content=new l.a(this)),this.document=void 0,this.contents=void 0,this.output=void 0}load(t){var e=t||this.request||u,i=new r.defer,n=i.promise;return this.contents?i.resolve(this.contents):e(this.url).then(function(t){return this.document=t,this.contents=t.documentElement,this.hooks.content.trigger(this.document,this)}.bind(this)).then(function(){i.resolve(this.contents)}.bind(this)).catch((function(t){i.reject(t)})),n}base(){return Object(c.a)(this.document,this)}render(t){var e=new r.defer,i=e.promise;return this.output,this.load(t).then(function(t){var e=(\"undefined\"!=typeof navigator&&navigator.userAgent||\"\").indexOf(\"Trident\")>=0,i=new(\"undefined\"==typeof XMLSerializer||e?d.DOMParser:XMLSerializer);return this.output=i.serializeToString(t),this.output}.bind(this)).then(function(){return this.hooks.serialize.trigger(this.output,this)}.bind(this)).then(function(){e.resolve(this.output)}.bind(this)).catch((function(t){e.reject(t)})),i}find(t){var e=this,i=[],n=t.toLowerCase();return Object(r.sprint)(e.document,(function(t){!function(t){for(var s,r,o,a=t.textContent.toLowerCase(),h=e.document.createRange(),l=-1;-1!=r;)-1!=(r=a.indexOf(n,l+1))&&((h=e.document.createRange()).setStart(t,r),h.setEnd(t,r+n.length),s=e.cfiFromRange(h),o=t.textContent.length<150?t.textContent:\"...\"+(o=t.textContent.substring(r-75,r+75))+\"...\",i.push({cfi:s,excerpt:o})),l=r}(t)})),i}search(t,e=5){if(void 0===document.createTreeWalker)return this.find(t);let i=[];const n=this,s=t.toLowerCase(),r=function(t){const e=t.reduce((t,e)=>t+e.textContent,\"\").toLowerCase().indexOf(s);if(-1!=e){const r=0,o=e+s.length;let a=0,h=0;if(e<t[r].length){let s;for(;a<t.length-1&&(h+=t[a].length,!(o<=h));)a+=1;let l=t[r],c=t[a],u=n.document.createRange();u.setStart(l,e);let d=t.slice(0,a).reduce((t,e)=>t+e.textContent.length,0);u.setEnd(c,d>o?o:o-d),s=n.cfiFromRange(u);let f=t.slice(0,a+1).reduce((t,e)=>t+e.textContent,\"\");f.length>150&&(f=f.substring(e-75,e+75),f=\"...\"+f+\"...\"),i.push({cfi:s,excerpt:f})}}},o=document.createTreeWalker(n.document,NodeFilter.SHOW_TEXT,null,!1);let a,h=[];for(;a=o.nextNode();)h.push(a),h.length==e&&(r(h.slice(0,e)),h=h.slice(1,e));return h.length>0&&r(h),i}reconcileLayoutSettings(t){var e={layout:t.layout,spread:t.spread,orientation:t.orientation};return this.properties.forEach((function(t){var i,n,s=t.replace(\"rendition:\",\"\"),r=s.indexOf(\"-\");-1!=r&&(i=s.slice(0,r),n=s.slice(r+1),e[i]=n)})),e}cfiFromRange(t){return new h.a(t,this.cfiBase).toString()}cfiFromElement(t){return new h.a(t,this.cfiBase).toString()}unload(){this.document=void 0,this.contents=void 0,this.output=void 0}destroy(){this.unload(),this.hooks.serialize.clear(),this.hooks.content.clear(),this.hooks=void 0,this.idref=void 0,this.linear=void 0,this.properties=void 0,this.index=void 0,this.href=void 0,this.url=void 0,this.next=void 0,this.prev=void 0,this.cfiBase=void 0}};var p=class{constructor(){this.spineItems=[],this.spineByHref={},this.spineById={},this.hooks={},this.hooks.serialize=new l.a,this.hooks.content=new l.a,this.hooks.content.register(c.a),this.hooks.content.register(c.b),this.hooks.content.register(c.d),this.epubcfi=new h.a,this.loaded=!1,this.items=void 0,this.manifest=void 0,this.spineNodeIndex=void 0,this.baseUrl=void 0,this.length=void 0}unpack(t,e,i){this.items=t.spine,this.manifest=t.manifest,this.spineNodeIndex=t.spineNodeIndex,this.baseUrl=t.baseUrl||t.basePath||\"\",this.length=this.items.length,this.items.forEach((t,n)=>{var s,r=this.manifest[t.idref];t.index=n,t.cfiBase=this.epubcfi.generateChapterComponent(this.spineNodeIndex,t.index,t.id),t.href&&(t.url=e(t.href,!0),t.canonical=i(t.href)),r&&(t.href=r.href,t.url=e(t.href,!0),t.canonical=i(t.href),r.properties.length&&t.properties.push.apply(t.properties,r.properties)),\"yes\"===t.linear?(t.prev=function(){let e=t.index;for(;e>0;){let t=this.get(e-1);if(t&&t.linear)return t;e-=1}}.bind(this),t.next=function(){let e=t.index;for(;e<this.spineItems.length-1;){let t=this.get(e+1);if(t&&t.linear)return t;e+=1}}.bind(this)):(t.prev=function(){},t.next=function(){}),s=new f(t,this.hooks),this.append(s)}),this.loaded=!0}get(t){var e=0;if(void 0===t)for(;e<this.spineItems.length;){let t=this.spineItems[e];if(t&&t.linear)break;e+=1}else if(this.epubcfi.isCfiString(t)){e=new h.a(t).spinePos}else\"number\"==typeof t||!1===isNaN(t)?e=t:\"string\"==typeof t&&0===t.indexOf(\"#\")?e=this.spineById[t.substring(1)]:\"string\"==typeof t&&(t=t.split(\"#\")[0],e=this.spineByHref[t]||this.spineByHref[encodeURI(t)]);return this.spineItems[e]||null}append(t){var e=this.spineItems.length;return t.index=e,this.spineItems.push(t),this.spineByHref[decodeURI(t.href)]=e,this.spineByHref[encodeURI(t.href)]=e,this.spineByHref[t.href]=e,this.spineById[t.idref]=e,e}prepend(t){return this.spineByHref[t.href]=0,this.spineById[t.idref]=0,this.spineItems.forEach((function(t,e){t.index=e})),0}remove(t){var e=this.spineItems.indexOf(t);if(e>-1)return delete this.spineByHref[t.href],delete this.spineById[t.idref],this.spineItems.splice(e,1)}each(){return this.spineItems.forEach.apply(this.spineItems,arguments)}first(){let t=0;do{let e=this.get(t);if(e&&e.linear)return e;t+=1}while(t<this.spineItems.length)}last(){let t=this.spineItems.length-1;do{let e=this.get(t);if(e&&e.linear)return e;t-=1}while(t>=0)}destroy(){this.each(t=>t.destroy()),this.spineItems=void 0,this.spineByHref=void 0,this.spineById=void 0,this.hooks.serialize.clear(),this.hooks.content.clear(),this.hooks=void 0,this.epubcfi=void 0,this.loaded=!1,this.items=void 0,this.manifest=void 0,this.spineNodeIndex=void 0,this.baseUrl=void 0,this.length=void 0}},g=i(9),m=i(1);class v{constructor(t,e,i){this.spine=t,this.request=e,this.pause=i||100,this.q=new g.a(this),this.epubcfi=new h.a,this._locations=[],this._locationsWords=[],this.total=0,this.break=150,this._current=0,this._wordCounter=0,this.currentLocation=\"\",this._currentCfi=\"\",this.processingTimeout=void 0}generate(t){return t&&(this.break=t),this.q.pause(),this.spine.each(function(t){t.linear&&this.q.enqueue(this.process.bind(this),t)}.bind(this)),this.q.run().then(function(){return this.total=this._locations.length-1,this._currentCfi&&(this.currentLocation=this._currentCfi),this._locations}.bind(this))}createRange(){return{startContainer:void 0,startOffset:void 0,endContainer:void 0,endOffset:void 0}}process(t){return t.load(this.request).then(function(e){var i=new r.defer,n=this.parse(e,t.cfiBase);return this._locations=this._locations.concat(n),t.unload(),this.processingTimeout=setTimeout(()=>i.resolve(n),this.pause),i.promise}.bind(this))}parse(t,e,i){var n,s,o=[],a=t.ownerDocument,l=Object(r.qs)(a,\"body\"),c=0,u=i||this.break;if(Object(r.sprint)(l,function(t){var i,r=t.length,a=0;if(0===t.textContent.trim().length)return!1;for(0==c&&((n=this.createRange()).startContainer=t,n.startOffset=0),(i=u-c)>r&&(c+=r,a=r);a<r;)if(i=u-c,0===c&&(a+=1,(n=this.createRange()).startContainer=t,n.startOffset=a),a+i>=r)c+=r-a,a=r;else{a+=i,n.endContainer=t,n.endOffset=a;let s=new h.a(n,e).toString();o.push(s),c=0}s=t}.bind(this)),n&&n.startContainer&&s){n.endContainer=s,n.endOffset=s.length;let t=new h.a(n,e).toString();o.push(t),c=0}return o}generateFromWords(t,e,i){var n=t?new h.a(t):void 0;return this.q.pause(),this._locationsWords=[],this._wordCounter=0,this.spine.each(function(t){t.linear&&(n?t.index>=n.spinePos&&this.q.enqueue(this.processWords.bind(this),t,e,n,i):this.q.enqueue(this.processWords.bind(this),t,e,n,i))}.bind(this)),this.q.run().then(function(){return this._currentCfi&&(this.currentLocation=this._currentCfi),this._locationsWords}.bind(this))}processWords(t,e,i,n){return n&&this._locationsWords.length>=n?Promise.resolve():t.load(this.request).then(function(s){var o=new r.defer,a=this.parseWords(s,t,e,i),h=n-this._locationsWords.length;return this._locationsWords=this._locationsWords.concat(a.length>=n?a.slice(0,h):a),t.unload(),this.processingTimeout=setTimeout(()=>o.resolve(a),this.pause),o.promise}.bind(this))}countWords(t){return(t=(t=(t=t.replace(/(^\\s*)|(\\s*$)/gi,\"\")).replace(/[ ]{2,}/gi,\" \")).replace(/\\n /,\"\\n\")).split(\" \").length}parseWords(t,e,i,n){var s,o=e.cfiBase,a=[],l=t.ownerDocument,c=Object(r.qs)(l,\"body\"),u=i,d=!n||n.spinePos!==e.index;n&&e.index===n.spinePos&&(s=n.findNode(n.range?n.path.steps.concat(n.start.steps):n.path.steps,t.ownerDocument));return Object(r.sprint)(c,function(t){if(!d){if(t!==s)return!1;d=!0}if(t.textContent.length<10&&0===t.textContent.trim().length)return!1;var e,i=this.countWords(t.textContent),n=0;if(0===i)return!1;for((e=u-this._wordCounter)>i&&(this._wordCounter+=i,n=i);n<i;)if(n+(e=u-this._wordCounter)>=i)this._wordCounter+=i-n,n=i;else{n+=e;let i=new h.a(t,o);a.push({cfi:i.toString(),wordCount:this._wordCounter}),this._wordCounter=0}t}.bind(this)),a}locationFromCfi(t){let e;return h.a.prototype.isCfiString(t)&&(t=new h.a(t)),0===this._locations.length?-1:(e=Object(r.locationOf)(t,this._locations,this.epubcfi.compare),e>this.total?this.total:e)}percentageFromCfi(t){if(0===this._locations.length)return null;var e=this.locationFromCfi(t);return this.percentageFromLocation(e)}percentageFromLocation(t){return t&&this.total?t/this.total:0}cfiFromLocation(t){var e=-1;return\"number\"!=typeof t&&(t=parseInt(t)),t>=0&&t<this._locations.length&&(e=this._locations[t]),e}cfiFromPercentage(t){let e;if(t>1&&console.warn(\"Normalize cfiFromPercentage value to between 0 - 1\"),t>=1){let t=new h.a(this._locations[this.total]);return t.collapse(),t.toString()}return e=Math.ceil(this.total*t),this.cfiFromLocation(e)}load(t){return this._locations=\"string\"==typeof t?JSON.parse(t):t,this.total=this._locations.length-1,this._locations}save(){return JSON.stringify(this._locations)}getCurrent(){return this._current}setCurrent(t){var e;if(\"string\"==typeof t)this._currentCfi=t;else{if(\"number\"!=typeof t)return;this._current=t}0!==this._locations.length&&(\"string\"==typeof t?(e=this.locationFromCfi(t),this._current=e):e=t,this.emit(m.c.LOCATIONS.CHANGED,{percentage:this.percentageFromLocation(e)}))}get currentLocation(){return this._current}set currentLocation(t){this.setCurrent(t)}length(){return this._locations.length}destroy(){this.spine=void 0,this.request=void 0,this.pause=void 0,this.q.stop(),this.q=void 0,this.epubcfi=void 0,this._locations=void 0,this.total=void 0,this.break=void 0,this._current=void 0,this.currentLocation=void 0,this._currentCfi=void 0,clearTimeout(this.processingTimeout)}}s()(v.prototype);var y=v,b=i(7),w=i.n(b);var x=class{constructor(t){this.packagePath=\"\",this.directory=\"\",this.encoding=\"\",t&&this.parse(t)}parse(t){var e;if(!t)throw new Error(\"Container File Not Found\");if(!(e=Object(r.qs)(t,\"rootfile\")))throw new Error(\"No RootFile Found\");this.packagePath=e.getAttribute(\"full-path\"),this.directory=w.a.dirname(this.packagePath),this.encoding=t.xmlEncoding}destroy(){this.packagePath=void 0,this.directory=void 0,this.encoding=void 0}};var E=class{constructor(t){this.manifest={},this.navPath=\"\",this.ncxPath=\"\",this.coverPath=\"\",this.spineNodeIndex=0,this.spine=[],this.metadata={},t&&this.parse(t)}parse(t){var e,i,n;if(!t)throw new Error(\"Package File Not Found\");if(!(e=Object(r.qs)(t,\"metadata\")))throw new Error(\"No Metadata Found\");if(!(i=Object(r.qs)(t,\"manifest\")))throw new Error(\"No Manifest Found\");if(!(n=Object(r.qs)(t,\"spine\")))throw new Error(\"No Spine Found\");return this.manifest=this.parseManifest(i),this.navPath=this.findNavPath(i),this.ncxPath=this.findNcxPath(i,n),this.coverPath=this.findCoverPath(t),this.spineNodeIndex=Object(r.indexOfElementNode)(n),this.spine=this.parseSpine(n,this.manifest),this.uniqueIdentifier=this.findUniqueIdentifier(t),this.metadata=this.parseMetadata(e),this.metadata.direction=n.getAttribute(\"page-progression-direction\"),{metadata:this.metadata,spine:this.spine,manifest:this.manifest,navPath:this.navPath,ncxPath:this.ncxPath,coverPath:this.coverPath,spineNodeIndex:this.spineNodeIndex}}parseMetadata(t){var e={};return e.title=this.getElementText(t,\"title\"),e.creator=this.getElementText(t,\"creator\"),e.description=this.getElementText(t,\"description\"),e.pubdate=this.getElementText(t,\"date\"),e.publisher=this.getElementText(t,\"publisher\"),e.identifier=this.getElementText(t,\"identifier\"),e.language=this.getElementText(t,\"language\"),e.rights=this.getElementText(t,\"rights\"),e.modified_date=this.getPropertyText(t,\"dcterms:modified\"),e.layout=this.getPropertyText(t,\"rendition:layout\"),e.orientation=this.getPropertyText(t,\"rendition:orientation\"),e.flow=this.getPropertyText(t,\"rendition:flow\"),e.viewport=this.getPropertyText(t,\"rendition:viewport\"),e.media_active_class=this.getPropertyText(t,\"media:active-class\"),e.spread=this.getPropertyText(t,\"rendition:spread\"),e}parseManifest(t){var e={},i=Object(r.qsa)(t,\"item\");return Array.prototype.slice.call(i).forEach((function(t){var i=t.getAttribute(\"id\"),n=t.getAttribute(\"href\")||\"\",s=t.getAttribute(\"media-type\")||\"\",r=t.getAttribute(\"media-overlay\")||\"\",o=t.getAttribute(\"properties\")||\"\";e[i]={href:n,type:s,overlay:r,properties:o.length?o.split(\" \"):[]}})),e}parseSpine(t,e){var i=[],n=Object(r.qsa)(t,\"itemref\");return Array.prototype.slice.call(n).forEach((function(t,e){var n=t.getAttribute(\"idref\"),s=t.getAttribute(\"properties\")||\"\",r=s.length?s.split(\" \"):[],o={id:t.getAttribute(\"id\"),idref:n,linear:t.getAttribute(\"linear\")||\"yes\",properties:r,index:e};i.push(o)})),i}findUniqueIdentifier(t){var e=t.documentElement.getAttribute(\"unique-identifier\");if(!e)return\"\";var i=t.getElementById(e);return i&&\"identifier\"===i.localName&&\"http://purl.org/dc/elements/1.1/\"===i.namespaceURI&&i.childNodes.length>0?i.childNodes[0].nodeValue.trim():\"\"}findNavPath(t){var e=Object(r.qsp)(t,\"item\",{properties:\"nav\"});return!!e&&e.getAttribute(\"href\")}findNcxPath(t,e){var i,n=Object(r.qsp)(t,\"item\",{\"media-type\":\"application/x-dtbncx+xml\"});return n||(i=e.getAttribute(\"toc\"))&&(n=t.querySelector(\"#\"+i)),!!n&&n.getAttribute(\"href\")}findCoverPath(t){Object(r.qs)(t,\"package\").getAttribute(\"version\");var e=Object(r.qsp)(t,\"item\",{properties:\"cover-image\"});if(e)return e.getAttribute(\"href\");var i=Object(r.qsp)(t,\"meta\",{name:\"cover\"});if(i){var n=i.getAttribute(\"content\"),s=t.getElementById(n);return s?s.getAttribute(\"href\"):\"\"}return!1}getElementText(t,e){var i,n=t.getElementsByTagNameNS(\"http://purl.org/dc/elements/1.1/\",e);return n&&0!==n.length&&(i=n[0]).childNodes.length?i.childNodes[0].nodeValue:\"\"}getPropertyText(t,e){var i=Object(r.qsp)(t,\"meta\",{property:e});return i&&i.childNodes.length?i.childNodes[0].nodeValue:\"\"}load(t){this.metadata=t.metadata;let e=t.readingOrder||t.spine;return this.spine=e.map((t,e)=>(t.index=e,t.linear=t.linear||\"yes\",t)),t.resources.forEach((t,e)=>{this.manifest[e]=t,t.rel&&\"cover\"===t.rel[0]&&(this.coverPath=t.href)}),this.spineNodeIndex=0,this.toc=t.toc.map((t,e)=>(t.label=t.title,t)),{metadata:this.metadata,spine:this.spine,manifest:this.manifest,navPath:this.navPath,ncxPath:this.ncxPath,coverPath:this.coverPath,spineNodeIndex:this.spineNodeIndex,toc:this.toc}}destroy(){this.manifest=void 0,this.navPath=void 0,this.ncxPath=void 0,this.coverPath=void 0,this.spineNodeIndex=void 0,this.spine=void 0,this.metadata=void 0}};var S=class{constructor(t){this.toc=[],this.tocByHref={},this.tocById={},this.landmarks=[],this.landmarksByType={},this.length=0,t&&this.parse(t)}parse(t){let e,i,n=t.nodeType;n&&(e=Object(r.qs)(t,\"html\"),i=Object(r.qs)(t,\"ncx\")),n?e?(this.toc=this.parseNav(t),this.landmarks=this.parseLandmarks(t)):i&&(this.toc=this.parseNcx(t)):this.toc=this.load(t),this.length=0,this.unpack(this.toc)}unpack(t){for(var e,i=0;i<t.length;i++)(e=t[i]).href&&(this.tocByHref[e.href]=i),e.id&&(this.tocById[e.id]=i),this.length++,e.subitems.length&&this.unpack(e.subitems)}get(t){var e;return t?(0===t.indexOf(\"#\")?e=this.tocById[t.substring(1)]:t in this.tocByHref&&(e=this.tocByHref[t]),this.getByIndex(t,e,this.toc)):this.toc}getByIndex(t,e,i){if(0===i.length)return;const n=i[e];if(!n||t!==n.id&&t!==n.href){let n;for(let s=0;s<i.length&&(n=this.getByIndex(t,e,i[s].subitems),!n);++s);return n}return n}landmark(t){var e;return t?(e=this.landmarksByType[t],this.landmarks[e]):this.landmarks}parseNav(t){var e=Object(r.querySelectorByType)(t,\"nav\",\"toc\"),i=[];if(!e)return i;let n=Object(r.filterChildren)(e,\"ol\",!0);return n?i=this.parseNavList(n):i}parseNavList(t,e){const i=[];if(!t)return i;if(!t.children)return i;for(let n=0;n<t.children.length;n++){const s=this.navItem(t.children[n],e);s&&i.push(s)}return i}navItem(t,e){let i=t.getAttribute(\"id\")||void 0,n=Object(r.filterChildren)(t,\"a\",!0)||Object(r.filterChildren)(t,\"span\",!0);if(!n)return;let s=n.getAttribute(\"href\")||\"\";i||(i=s);let o=n.textContent||\"\",a=[],h=Object(r.filterChildren)(t,\"ol\",!0);return h&&(a=this.parseNavList(h,i)),{id:i,href:s,label:o,subitems:a,parent:e}}parseLandmarks(t){var e,i,n=Object(r.querySelectorByType)(t,\"nav\",\"landmarks\"),s=n?Object(r.qsa)(n,\"li\"):[],o=s.length,a=[];if(!s||0===o)return a;for(e=0;e<o;++e)(i=this.landmarkItem(s[e]))&&(a.push(i),this.landmarksByType[i.type]=e);return a}landmarkItem(t){let e=Object(r.filterChildren)(t,\"a\",!0);if(!e)return;let i=e.getAttributeNS(\"http://www.idpf.org/2007/ops\",\"type\")||void 0;return{href:e.getAttribute(\"href\")||\"\",label:e.textContent||\"\",type:i}}parseNcx(t){var e,i,n=Object(r.qsa)(t,\"navPoint\"),s=n.length,o={},a=[];if(!n||0===s)return a;for(e=0;e<s;++e)o[(i=this.ncxItem(n[e])).id]=i,i.parent?o[i.parent].subitems.push(i):a.push(i);return a}ncxItem(t){var e,i=t.getAttribute(\"id\")||!1,n=Object(r.qs)(t,\"content\").getAttribute(\"src\"),s=Object(r.qs)(t,\"navLabel\"),o=s.textContent?s.textContent:\"\",a=t.parentNode;return!a||\"navPoint\"!==a.nodeName&&\"navPoint\"!==a.nodeName.split(\":\").slice(-1)[0]||(e=a.getAttribute(\"id\")),{id:i,href:n,label:o,subitems:[],parent:e}}load(t){return t.map(t=>(t.label=t.title,t.subitems=t.children?this.load(t.children):[],t))}forEach(t){return this.toc.forEach(t)}},N={application:{ecmascript:[\"es\",\"ecma\"],javascript:\"js\",ogg:\"ogx\",pdf:\"pdf\",postscript:[\"ps\",\"ai\",\"eps\",\"epsi\",\"epsf\",\"eps2\",\"eps3\"],\"rdf+xml\":\"rdf\",smil:[\"smi\",\"smil\"],\"xhtml+xml\":[\"xhtml\",\"xht\"],xml:[\"xml\",\"xsl\",\"xsd\",\"opf\",\"ncx\"],zip:\"zip\",\"x-httpd-eruby\":\"rhtml\",\"x-latex\":\"latex\",\"x-maker\":[\"frm\",\"maker\",\"frame\",\"fm\",\"fb\",\"book\",\"fbdoc\"],\"x-object\":\"o\",\"x-shockwave-flash\":[\"swf\",\"swfl\"],\"x-silverlight\":\"scr\",\"epub+zip\":\"epub\",\"font-tdpfr\":\"pfr\",\"inkml+xml\":[\"ink\",\"inkml\"],json:\"json\",\"jsonml+json\":\"jsonml\",\"mathml+xml\":\"mathml\",\"metalink+xml\":\"metalink\",mp4:\"mp4s\",\"omdoc+xml\":\"omdoc\",oxps:\"oxps\",\"vnd.amazon.ebook\":\"azw\",widget:\"wgt\",\"x-dtbook+xml\":\"dtb\",\"x-dtbresource+xml\":\"res\",\"x-font-bdf\":\"bdf\",\"x-font-ghostscript\":\"gsf\",\"x-font-linux-psf\":\"psf\",\"x-font-otf\":\"otf\",\"x-font-pcf\":\"pcf\",\"x-font-snf\":\"snf\",\"x-font-ttf\":[\"ttf\",\"ttc\"],\"x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"x-font-woff\":\"woff\",\"x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"x-mspublisher\":\"pub\",\"x-nzb\":\"nzb\",\"x-tgif\":\"obj\",\"xaml+xml\":\"xaml\",\"xml-dtd\":\"dtd\",\"xproc+xml\":\"xpl\",\"xslt+xml\":\"xslt\",\"internet-property-stream\":\"acx\",\"x-compress\":\"z\",\"x-compressed\":\"tgz\",\"x-gzip\":\"gz\"},audio:{flac:\"flac\",midi:[\"mid\",\"midi\",\"kar\",\"rmi\"],mpeg:[\"mpga\",\"mpega\",\"mp2\",\"mp3\",\"m4a\",\"mp2a\",\"m2a\",\"m3a\"],mpegurl:\"m3u\",ogg:[\"oga\",\"ogg\",\"spx\"],\"x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"x-ms-wma\":\"wma\",\"x-wav\":\"wav\",adpcm:\"adp\",mp4:\"mp4a\",webm:\"weba\",\"x-aac\":\"aac\",\"x-caf\":\"caf\",\"x-matroska\":\"mka\",\"x-pn-realaudio-plugin\":\"rmp\",xm:\"xm\",mid:[\"mid\",\"rmi\"]},image:{gif:\"gif\",ief:\"ief\",jpeg:[\"jpeg\",\"jpg\",\"jpe\"],pcx:\"pcx\",png:\"png\",\"svg+xml\":[\"svg\",\"svgz\"],tiff:[\"tiff\",\"tif\"],\"x-icon\":\"ico\",bmp:\"bmp\",webp:\"webp\",\"x-pict\":[\"pic\",\"pct\"],\"x-tga\":\"tga\",\"cis-cod\":\"cod\"},text:{\"cache-manifest\":[\"manifest\",\"appcache\"],css:\"css\",csv:\"csv\",html:[\"html\",\"htm\",\"shtml\",\"stm\"],mathml:\"mml\",plain:[\"txt\",\"text\",\"brf\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"bas\"],richtext:\"rtx\",\"tab-separated-values\":\"tsv\",\"x-bibtex\":\"bib\"},video:{mpeg:[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\",\"mp2\",\"mpa\",\"mpv2\"],mp4:[\"mp4\",\"mp4v\",\"mpg4\"],quicktime:[\"qt\",\"mov\"],ogg:\"ogv\",\"vnd.mpegurl\":[\"mxu\",\"m4u\"],\"x-flv\":\"flv\",\"x-la-asf\":[\"lsf\",\"lsx\"],\"x-mng\":\"mng\",\"x-ms-asf\":[\"asf\",\"asx\",\"asr\"],\"x-ms-wm\":\"wm\",\"x-ms-wmv\":\"wmv\",\"x-ms-wmx\":\"wmx\",\"x-ms-wvx\":\"wvx\",\"x-msvideo\":\"avi\",\"x-sgi-movie\":\"movie\",\"x-matroska\":[\"mpv\",\"mkv\",\"mk3d\",\"mks\"],\"3gpp2\":\"3g2\",h261:\"h261\",h263:\"h263\",h264:\"h264\",jpeg:\"jpgv\",jpm:[\"jpm\",\"jpgm\"],mj2:[\"mj2\",\"mjp2\"],\"vnd.ms-playready.media.pyv\":\"pyv\",\"vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"vnd.vivo\":\"viv\",webm:\"webm\",\"x-f4v\":\"f4v\",\"x-m4v\":\"m4v\",\"x-ms-vob\":\"vob\",\"x-smv\":\"smv\"}},_=function(){var t,e,i,n,s={};for(t in N)if(N.hasOwnProperty(t))for(e in N[t])if(N[t].hasOwnProperty(e))if(\"string\"==typeof(i=N[t][e]))s[i]=t+\"/\"+e;else for(n=0;n<i.length;n++)s[i[n]]=t+\"/\"+e;return s}();var T={lookup:function(t){return t&&_[t.split(\".\").pop().toLowerCase()]||\"text/plain\"}};var C=class{constructor(t,e){this.settings={replacements:e&&e.replacements||\"base64\",archive:e&&e.archive,resolver:e&&e.resolver,request:e&&e.request},this.process(t)}process(t){this.manifest=t,this.resources=Object.keys(t).map((function(e){return t[e]})),this.replacementUrls=[],this.html=[],this.assets=[],this.css=[],this.urls=[],this.cssUrls=[],this.split(),this.splitUrls()}split(){this.html=this.resources.filter((function(t){if(\"application/xhtml+xml\"===t.type||\"text/html\"===t.type)return!0})),this.assets=this.resources.filter((function(t){if(\"application/xhtml+xml\"!==t.type&&\"text/html\"!==t.type)return!0})),this.css=this.resources.filter((function(t){if(\"text/css\"===t.type)return!0}))}splitUrls(){this.urls=this.assets.map(function(t){return t.href}.bind(this)),this.cssUrls=this.css.map((function(t){return t.href}))}createUrl(t){var e=new o.a(t),i=T.lookup(e.filename);return this.settings.archive?this.settings.archive.createUrl(t,{base64:\"base64\"===this.settings.replacements}):\"base64\"===this.settings.replacements?this.settings.request(t,\"blob\").then(t=>Object(r.blob2base64)(t)).then(t=>Object(r.createBase64Url)(t,i)):this.settings.request(t,\"blob\").then(t=>Object(r.createBlobUrl)(t,i))}replacements(){if(\"none\"===this.settings.replacements)return new Promise(function(t){t(this.urls)}.bind(this));var t=this.urls.map(t=>{var e=this.settings.resolver(t);return this.createUrl(e).catch(t=>(console.error(t),null))});return Promise.all(t).then(t=>(this.replacementUrls=t.filter(t=>\"string\"==typeof t),t))}replaceCss(t,e){var i=[];return t=t||this.settings.archive,e=e||this.settings.resolver,this.cssUrls.forEach(function(n){var s=this.createCssFile(n,t,e).then(function(t){var e=this.urls.indexOf(n);e>-1&&(this.replacementUrls[e]=t)}.bind(this));i.push(s)}.bind(this)),Promise.all(i)}createCssFile(t){if(w.a.isAbsolute(t))return new Promise((function(t){t()}));var e,i=this.settings.resolver(t);e=this.settings.archive?this.settings.archive.getText(i):this.settings.request(i,\"text\");var n=this.urls.map(t=>{var e=this.settings.resolver(t);return new a.a(i).relative(e)});return e?e.then(t=>(t=Object(c.e)(t,n,this.replacementUrls),\"base64\"===this.settings.replacements?Object(r.createBase64Url)(t,\"text/css\"):Object(r.createBlobUrl)(t,\"text/css\")),t=>new Promise((function(t){t()}))):new Promise((function(t){t()}))}relativeTo(t,e){return e=e||this.settings.resolver,this.urls.map(function(i){var n=e(i);return new a.a(t).relative(n)}.bind(this))}get(t){var e=this.urls.indexOf(t);if(-1!==e)return this.replacementUrls.length?new Promise(function(t,i){t(this.replacementUrls[e])}.bind(this)):this.createUrl(t)}substitute(t,e){var i;return i=e?this.relativeTo(e):this.urls,Object(c.e)(t,i,this.replacementUrls)}destroy(){this.settings=void 0,this.manifest=void 0,this.resources=void 0,this.replacementUrls=void 0,this.html=void 0,this.assets=void 0,this.css=void 0,this.urls=void 0,this.cssUrls=void 0}};var O=class{constructor(t){this.pages=[],this.locations=[],this.epubcfi=new h.a,this.firstPage=0,this.lastPage=0,this.totalPages=0,this.toc=void 0,this.ncx=void 0,t&&(this.pageList=this.parse(t)),this.pageList&&this.pageList.length&&this.process(this.pageList)}parse(t){var e=Object(r.qs)(t,\"html\"),i=Object(r.qs)(t,\"ncx\");return e?this.parseNav(t):i?this.parseNcx(t):void 0}parseNav(t){var e,i,n=Object(r.querySelectorByType)(t,\"nav\",\"page-list\"),s=n?Object(r.qsa)(n,\"li\"):[],o=s.length,a=[];if(!s||0===o)return a;for(e=0;e<o;++e)i=this.item(s[e]),a.push(i);return a}parseNcx(t){var e,i,n,s,o=[],a=0;if(!(i=Object(r.qs)(t,\"pageList\")))return o;if(s=(n=Object(r.qsa)(i,\"pageTarget\")).length,!n||0===n.length)return o;for(a=0;a<s;++a)e=this.ncxItem(n[a]),o.push(e);return o}ncxItem(t){var e=Object(r.qs)(t,\"navLabel\"),i=Object(r.qs)(e,\"text\").textContent;return{href:Object(r.qs)(t,\"content\").getAttribute(\"src\"),page:parseInt(i,10)}}item(t){var e,i,n=Object(r.qs)(t,\"a\"),s=n.getAttribute(\"href\")||\"\",o=n.textContent||\"\",a=parseInt(o);return-1!=s.indexOf(\"epubcfi\")?(i=(e=s.split(\"#\"))[0],{cfi:e.length>1&&e[1],href:s,packageUrl:i,page:a}):{href:s,page:a}}process(t){t.forEach((function(t){this.pages.push(t.page),t.cfi&&this.locations.push(t.cfi)}),this),this.firstPage=parseInt(this.pages[0]),this.lastPage=parseInt(this.pages[this.pages.length-1]),this.totalPages=this.lastPage-this.firstPage}pageFromCfi(t){var e=-1;if(0===this.locations.length)return-1;var i=Object(r.indexOfSorted)(t,this.locations,this.epubcfi.compare);return-1!=i?e=this.pages[i]:void 0!==(e=(i=Object(r.locationOf)(t,this.locations,this.epubcfi.compare))-1>=0?this.pages[i-1]:this.pages[0])||(e=-1),e}cfiFromPage(t){var e=-1;\"number\"!=typeof t&&(t=parseInt(t));var i=this.pages.indexOf(t);return-1!=i&&(e=this.locations[i]),e}pageFromPercentage(t){return Math.round(this.totalPages*t)}percentageFromPage(t){var e=(t-this.firstPage)/this.totalPages;return Math.round(1e3*e)/1e3}percentageFromCfi(t){var e=this.pageFromCfi(t);return this.percentageFromPage(e)}destroy(){this.pages=void 0,this.locations=void 0,this.epubcfi=void 0,this.pageList=void 0,this.toc=void 0,this.ncx=void 0}},I=i(16),R=i(29),k=i.n(R);var A=class{constructor(){this.zip=void 0,this.urlCache={},this.checkRequirements()}checkRequirements(){try{this.zip=new k.a}catch(t){throw new Error(\"JSZip lib not loaded\")}}open(t,e){return this.zip.loadAsync(t,{base64:e})}openUrl(t,e){return u(t,\"binary\").then(function(t){return this.zip.loadAsync(t,{base64:e})}.bind(this))}request(t,e){var i,n=new r.defer,s=new a.a(t);return e||(e=s.extension),(i=\"blob\"==e?this.getBlob(t):this.getText(t))?i.then(function(t){let i=this.handleResponse(t,e);n.resolve(i)}.bind(this)):n.reject({message:\"File not found in the epub: \"+t,stack:(new Error).stack}),n.promise}handleResponse(t,e){return\"json\"==e?JSON.parse(t):Object(r.isXml)(e)?Object(r.parse)(t,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(t,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(t,\"text/html\"):t}getBlob(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return e=e||T.lookup(n.name),n.async(\"uint8array\").then((function(t){return new Blob([t],{type:e})}))}getText(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return n.async(\"string\").then((function(t){return t}))}getBase64(t,e){var i=window.decodeURIComponent(t.substr(1)),n=this.zip.file(i);if(n)return e=e||T.lookup(n.name),n.async(\"base64\").then((function(t){return\"data:\"+e+\";base64,\"+t}))}createUrl(t,e){var i,n,s=new r.defer,o=window.URL||window.webkitURL||window.mozURL,a=e&&e.base64;return t in this.urlCache?(s.resolve(this.urlCache[t]),s.promise):(a?(n=this.getBase64(t))&&n.then(function(e){this.urlCache[t]=e,s.resolve(e)}.bind(this)):(n=this.getBlob(t))&&n.then(function(e){i=o.createObjectURL(e),this.urlCache[t]=i,s.resolve(i)}.bind(this)),n||s.reject({message:\"File not found in the epub: \"+t,stack:(new Error).stack}),s.promise)}revokeUrl(t){var e=window.URL||window.webkitURL||window.mozURL,i=this.urlCache[t];i&&e.revokeObjectURL(i)}destroy(){var t=window.URL||window.webkitURL||window.mozURL;for(let e in this.urlCache)t.revokeObjectURL(e);this.zip=void 0,this.urlCache={}}},L=i(23),j=i.n(L);class D{constructor(t,e,i){this.urlCache={},this.storage=void 0,this.name=t,this.requester=e||u,this.resolver=i,this.online=!0,this.checkRequirements(),this.addListeners()}checkRequirements(){try{let t;void 0===j.a&&(t=j.a),this.storage=t.createInstance({name:this.name})}catch(t){throw new Error(\"localForage lib not loaded\")}}addListeners(){this._status=this.status.bind(this),window.addEventListener(\"online\",this._status),window.addEventListener(\"offline\",this._status)}removeListeners(){window.removeEventListener(\"online\",this._status),window.removeEventListener(\"offline\",this._status),this._status=void 0}status(t){let e=navigator.onLine;this.online=e,e?this.emit(\"online\",this):this.emit(\"offline\",this)}add(t,e){let i=t.resources.map(t=>{let{href:i}=t,n=this.resolver(i),s=window.encodeURIComponent(n);return this.storage.getItem(s).then(t=>!t||e?this.requester(n,\"binary\").then(t=>this.storage.setItem(s,t)):t)});return Promise.all(i)}put(t,e,i){let n=window.encodeURIComponent(t);return this.storage.getItem(n).then(s=>s||this.requester(t,\"binary\",e,i).then(t=>this.storage.setItem(n,t)))}request(t,e,i,n){return this.online?this.requester(t,e,i,n).then(e=>(this.put(t),e)):this.retrieve(t,e)}retrieve(t,e){new r.defer;var i=new a.a(t);return e||(e=i.extension),(\"blob\"==e?this.getBlob(t):this.getText(t)).then(i=>{var n,s=new r.defer;return i?(n=this.handleResponse(i,e),s.resolve(n)):s.reject({message:\"File not found in storage: \"+t,stack:(new Error).stack}),s.promise})}handleResponse(t,e){return\"json\"==e?JSON.parse(t):Object(r.isXml)(e)?Object(r.parse)(t,\"text/xml\"):\"xhtml\"==e?Object(r.parse)(t,\"application/xhtml+xml\"):\"html\"==e||\"htm\"==e?Object(r.parse)(t,\"text/html\"):t}getBlob(t,e){let i=window.encodeURIComponent(t);return this.storage.getItem(i).then((function(i){if(i)return e=e||T.lookup(t),new Blob([i],{type:e})}))}getText(t,e){let i=window.encodeURIComponent(t);return e=e||T.lookup(t),this.storage.getItem(i).then((function(t){var i,n=new r.defer,s=new FileReader;if(t)return i=new Blob([t],{type:e}),s.addEventListener(\"loadend\",()=>{n.resolve(s.result)}),s.readAsText(i,e),n.promise}))}getBase64(t,e){let i=window.encodeURIComponent(t);return e=e||T.lookup(t),this.storage.getItem(i).then(t=>{var i,n=new r.defer,s=new FileReader;if(t)return i=new Blob([t],{type:e}),s.addEventListener(\"loadend\",()=>{n.resolve(s.result)}),s.readAsDataURL(i,e),n.promise})}createUrl(t,e){var i,n,s=new r.defer,o=window.URL||window.webkitURL||window.mozURL,a=e&&e.base64;return t in this.urlCache?(s.resolve(this.urlCache[t]),s.promise):(a?(n=this.getBase64(t))&&n.then(function(e){this.urlCache[t]=e,s.resolve(e)}.bind(this)):(n=this.getBlob(t))&&n.then(function(e){i=o.createObjectURL(e),this.urlCache[t]=i,s.resolve(i)}.bind(this)),n||s.reject({message:\"File not found in storage: \"+t,stack:(new Error).stack}),s.promise)}revokeUrl(t){var e=window.URL||window.webkitURL||window.mozURL,i=this.urlCache[t];i&&e.revokeObjectURL(i)}destroy(){var t=window.URL||window.webkitURL||window.mozURL;for(let e in this.urlCache)t.revokeObjectURL(e);this.urlCache={},this.removeListeners()}}s()(D.prototype);var P=D;var M=class{constructor(t){this.interactive=\"\",this.fixedLayout=\"\",this.openToSpread=\"\",this.orientationLock=\"\",t&&this.parse(t)}parse(t){if(!t)return this;const e=Object(r.qs)(t,\"display_options\");if(!e)return this;return Object(r.qsa)(e,\"option\").forEach(t=>{let e=\"\";switch(t.childNodes.length&&(e=t.childNodes[0].nodeValue),t.attributes.name.value){case\"interactive\":this.interactive=e;break;case\"fixed-layout\":this.fixedLayout=e;break;case\"open-to-spread\":this.openToSpread=e;break;case\"orientation-lock\":this.orientationLock=e}}),this}destroy(){this.interactive=void 0,this.fixedLayout=void 0,this.openToSpread=void 0,this.orientationLock=void 0}};const z=\"binary\",B=\"base64\",q=\"epub\",F=\"opf\",U=\"json\",W=\"directory\";class H{constructor(t,e){void 0===e&&\"string\"!=typeof t&&t instanceof Blob==!1&&t instanceof ArrayBuffer==!1&&(e=t,t=void 0),this.settings=Object(r.extend)(this.settings||{},{requestMethod:void 0,requestCredentials:void 0,requestHeaders:void 0,encoding:void 0,replacements:void 0,canonical:void 0,openAs:void 0,store:void 0}),Object(r.extend)(this.settings,e),this.opening=new r.defer,this.opened=this.opening.promise,this.isOpen=!1,this.loading={manifest:new r.defer,spine:new r.defer,metadata:new r.defer,cover:new r.defer,navigation:new r.defer,pageList:new r.defer,resources:new r.defer,displayOptions:new r.defer},this.loaded={manifest:this.loading.manifest.promise,spine:this.loading.spine.promise,metadata:this.loading.metadata.promise,cover:this.loading.cover.promise,navigation:this.loading.navigation.promise,pageList:this.loading.pageList.promise,resources:this.loading.resources.promise,displayOptions:this.loading.displayOptions.promise},this.ready=Promise.all([this.loaded.manifest,this.loaded.spine,this.loaded.metadata,this.loaded.cover,this.loaded.navigation,this.loaded.resources,this.loaded.displayOptions]),this.isRendered=!1,this.request=this.settings.requestMethod||u,this.spine=new p,this.locations=new y(this.spine,this.load.bind(this)),this.navigation=void 0,this.pageList=void 0,this.url=void 0,this.path=void 0,this.archived=!1,this.archive=void 0,this.storage=void 0,this.resources=void 0,this.rendition=void 0,this.container=void 0,this.packaging=void 0,this.displayOptions=void 0,this.settings.store&&this.store(this.settings.store),t&&this.open(t,this.settings.openAs).catch(e=>{var i=new Error(\"Cannot load book at \"+t);this.emit(m.c.BOOK.OPEN_FAILED,i)})}open(t,e){var i,n=e||this.determineType(t);return n===z?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.openEpub(t)):n===B?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.openEpub(t,n)):n===q?(this.archived=!0,this.url=new o.a(\"/\",\"\"),i=this.request(t,\"binary\",this.settings.requestCredentials,this.settings.requestHeaders).then(this.openEpub.bind(this))):n==F?(this.url=new o.a(t),i=this.openPackaging(this.url.Path.toString())):n==U?(this.url=new o.a(t),i=this.openManifest(this.url.Path.toString())):(this.url=new o.a(t),i=this.openContainer(\"META-INF/container.xml\").then(this.openPackaging.bind(this))),i}openEpub(t,e){return this.unarchive(t,e||this.settings.encoding).then(()=>this.openContainer(\"META-INF/container.xml\")).then(t=>this.openPackaging(t))}openContainer(t){return this.load(t).then(t=>(this.container=new x(t),this.resolve(this.container.packagePath)))}openPackaging(t){return this.path=new a.a(t),this.load(t).then(t=>(this.packaging=new E(t),this.unpack(this.packaging)))}openManifest(t){return this.path=new a.a(t),this.load(t).then(t=>(this.packaging=new E,this.packaging.load(t),this.unpack(this.packaging)))}load(t){var e=this.resolve(t);return this.archived?this.archive.request(e):this.request(e,null,this.settings.requestCredentials,this.settings.requestHeaders)}resolve(t,e){if(t){var i=t;return t.indexOf(\"://\")>-1?t:(this.path&&(i=this.path.resolve(t)),0!=e&&this.url&&(i=this.url.resolve(i)),i)}}canonical(t){return t?this.settings.canonical?this.settings.canonical(t):this.resolve(t,!0):\"\"}determineType(t){var e;return\"base64\"===this.settings.encoding?B:\"string\"!=typeof t?z:((e=new o.a(t).path().extension)&&(e=e.replace(/\\?.*$/,\"\")),e?\"epub\"===e?q:\"opf\"===e?F:\"json\"===e?U:void 0:W)}unpack(t){this.package=t,\"\"===this.packaging.metadata.layout?this.load(this.url.resolve(\"META-INF/com.apple.ibooks.display-options.xml\")).then(t=>{this.displayOptions=new M(t),this.loading.displayOptions.resolve(this.displayOptions)}).catch(t=>{this.displayOptions=new M,this.loading.displayOptions.resolve(this.displayOptions)}):(this.displayOptions=new M,this.loading.displayOptions.resolve(this.displayOptions)),this.spine.unpack(this.packaging,this.resolve.bind(this),this.canonical.bind(this)),this.resources=new C(this.packaging.manifest,{archive:this.archive,resolver:this.resolve.bind(this),request:this.request.bind(this),replacements:this.settings.replacements||(this.archived?\"blobUrl\":\"base64\")}),this.loadNavigation(this.packaging).then(()=>{this.loading.navigation.resolve(this.navigation)}),this.packaging.coverPath&&(this.cover=this.resolve(this.packaging.coverPath)),this.loading.manifest.resolve(this.packaging.manifest),this.loading.metadata.resolve(this.packaging.metadata),this.loading.spine.resolve(this.spine),this.loading.cover.resolve(this.cover),this.loading.resources.resolve(this.resources),this.loading.pageList.resolve(this.pageList),this.isOpen=!0,this.archived||this.settings.replacements&&\"none\"!=this.settings.replacements?this.replacements().then(()=>{this.loaded.displayOptions.then(()=>{this.opening.resolve(this)})}).catch(t=>{console.error(t)}):this.loaded.displayOptions.then(()=>{this.opening.resolve(this)})}loadNavigation(t){let e=t.navPath||t.ncxPath,i=t.toc;return i?new Promise((e,n)=>{this.navigation=new S(i),t.pageList&&(this.pageList=new O(t.pageList)),e(this.navigation)}):e?this.load(e,\"xml\").then(t=>(this.navigation=new S(t),this.pageList=new O(t),this.navigation)):new Promise((t,e)=>{this.navigation=new S,this.pageList=new O,t(this.navigation)})}section(t){return this.spine.get(t)}renderTo(t,e){return this.rendition=new I.a(this,e),this.rendition.attachTo(t),this.rendition}setRequestCredentials(t){this.settings.requestCredentials=t}setRequestHeaders(t){this.settings.requestHeaders=t}unarchive(t,e){return this.archive=new A,this.archive.open(t,e)}store(t){let e=this.settings.replacements&&\"none\"!==this.settings.replacements,i=this.url,n=this.settings.requestMethod||u.bind(this);return this.storage=new P(t,n,this.resolve.bind(this)),this.request=this.storage.request.bind(this.storage),this.opened.then(()=>{this.archived&&(this.storage.requester=this.archive.request.bind(this.archive));let t=(t,e)=>{e.output=this.resources.substitute(t,e.url)};this.resources.settings.replacements=e||\"blobUrl\",this.resources.replacements().then(()=>this.resources.replaceCss()),this.storage.on(\"offline\",()=>{this.url=new o.a(\"/\",\"\"),this.spine.hooks.serialize.register(t)}),this.storage.on(\"online\",()=>{this.url=i,this.spine.hooks.serialize.deregister(t)})}),this.storage}coverUrl(){return this.loaded.cover.then(()=>this.cover?this.archived?this.archive.createUrl(this.cover):this.cover:null)}replacements(){return this.spine.hooks.serialize.register((t,e)=>{e.output=this.resources.substitute(t,e.url)}),this.resources.replacements().then(()=>this.resources.replaceCss())}getRange(t){var e=new h.a(t),i=this.spine.get(e.spinePos),n=this.load.bind(this);return i?i.load(n).then((function(t){return e.toRange(i.document)})):new Promise((t,e)=>{e(\"CFI could not be found\")})}key(t){var e=t||this.packaging.metadata.identifier||this.url.filename;return`epubjs:${m.b}:${e}`}destroy(){this.opened=void 0,this.loading=void 0,this.loaded=void 0,this.ready=void 0,this.isOpen=!1,this.isRendered=!1,this.spine&&this.spine.destroy(),this.locations&&this.locations.destroy(),this.pageList&&this.pageList.destroy(),this.archive&&this.archive.destroy(),this.resources&&this.resources.destroy(),this.container&&this.container.destroy(),this.packaging&&this.packaging.destroy(),this.rendition&&this.rendition.destroy(),this.displayOptions&&this.displayOptions.destroy(),this.spine=void 0,this.locations=void 0,this.pageList=void 0,this.archive=void 0,this.resources=void 0,this.container=void 0,this.packaging=void 0,this.rendition=void 0,this.navigation=void 0,this.url=void 0,this.path=void 0,this.archived=!1}}s()(H.prototype);e.a=H},function(t,e,i){var n=i(14).NAMESPACE;function s(t){return\"\"!==t}function r(t,e){return t.hasOwnProperty(e)||(t[e]=!0),t}function o(t){if(!t)return[];var e=function(t){return t?t.split(/[\\t\\n\\f\\r ]+/).filter(s):[]}(t);return Object.keys(e.reduce(r,{}))}function a(t,e){for(var i in t)e[i]=t[i]}function h(t,e){var i=t.prototype;if(!(i instanceof e)){function n(){}n.prototype=e.prototype,a(i,n=new n),t.prototype=i=n}i.constructor!=t&&(\"function\"!=typeof t&&console.error(\"unknown Class:\"+t),i.constructor=t)}var l={},c=l.ELEMENT_NODE=1,u=l.ATTRIBUTE_NODE=2,d=l.TEXT_NODE=3,f=l.CDATA_SECTION_NODE=4,p=l.ENTITY_REFERENCE_NODE=5,g=l.ENTITY_NODE=6,m=l.PROCESSING_INSTRUCTION_NODE=7,v=l.COMMENT_NODE=8,y=l.DOCUMENT_NODE=9,b=l.DOCUMENT_TYPE_NODE=10,w=l.DOCUMENT_FRAGMENT_NODE=11,x=l.NOTATION_NODE=12,E={},S={},N=(E.INDEX_SIZE_ERR=(S[1]=\"Index size error\",1),E.DOMSTRING_SIZE_ERR=(S[2]=\"DOMString size error\",2),E.HIERARCHY_REQUEST_ERR=(S[3]=\"Hierarchy request error\",3)),_=(E.WRONG_DOCUMENT_ERR=(S[4]=\"Wrong document\",4),E.INVALID_CHARACTER_ERR=(S[5]=\"Invalid character\",5),E.NO_DATA_ALLOWED_ERR=(S[6]=\"No data allowed\",6),E.NO_MODIFICATION_ALLOWED_ERR=(S[7]=\"No modification allowed\",7),E.NOT_FOUND_ERR=(S[8]=\"Not found\",8)),T=(E.NOT_SUPPORTED_ERR=(S[9]=\"Not supported\",9),E.INUSE_ATTRIBUTE_ERR=(S[10]=\"Attribute in use\",10));E.INVALID_STATE_ERR=(S[11]=\"Invalid state\",11),E.SYNTAX_ERR=(S[12]=\"Syntax error\",12),E.INVALID_MODIFICATION_ERR=(S[13]=\"Invalid modification\",13),E.NAMESPACE_ERR=(S[14]=\"Invalid namespace\",14),E.INVALID_ACCESS_ERR=(S[15]=\"Invalid access\",15);function C(t,e){if(e instanceof Error)var i=e;else i=this,Error.call(this,S[t]),this.message=S[t],Error.captureStackTrace&&Error.captureStackTrace(this,C);return i.code=t,e&&(this.message=this.message+\": \"+e),i}function O(){}function I(t,e){this._node=t,this._refresh=e,R(this)}function R(t){var e=t._node._inc||t._node.ownerDocument._inc;if(t._inc!=e){var i=t._refresh(t._node);at(t,\"length\",i.length),a(i,t),t._inc=e}}function k(){}function A(t,e){for(var i=t.length;i--;)if(t[i]===e)return i}function L(t,e,i,s){if(s?e[A(e,s)]=i:e[e.length++]=i,t){i.ownerElement=t;var r=t.ownerDocument;r&&(s&&q(r,t,s),function(t,e,i){t&&t._inc++,i.namespaceURI===n.XMLNS&&(e._nsMap[i.prefix?i.localName:\"\"]=i.value)}(r,t,i))}}function j(t,e,i){var n=A(e,i);if(!(n>=0))throw C(_,new Error(t.tagName+\"@\"+i));for(var s=e.length-1;n<s;)e[n]=e[++n];if(e.length=s,t){var r=t.ownerDocument;r&&(q(r,t,i),i.ownerElement=null)}}function D(){}function P(){}function M(t){return(\"<\"==t?\"<\":\">\"==t&&\">\")||\"&\"==t&&\"&\"||'\"'==t&&\""\"||\"&#\"+t.charCodeAt()+\";\"}function z(t,e){if(e(t))return!0;if(t=t.firstChild)do{if(z(t,e))return!0}while(t=t.nextSibling)}function B(){}function q(t,e,i,s){t&&t._inc++,i.namespaceURI===n.XMLNS&&delete e._nsMap[i.prefix?i.localName:\"\"]}function F(t,e,i){if(t&&t._inc){t._inc++;var n=e.childNodes;if(i)n[n.length++]=i;else{for(var s=e.firstChild,r=0;s;)n[r++]=s,s=s.nextSibling;n.length=r}}}function U(t,e){var i=e.previousSibling,n=e.nextSibling;return i?i.nextSibling=n:t.firstChild=n,n?n.previousSibling=i:t.lastChild=i,F(t.ownerDocument,t),e}function W(t,e,i){var n=e.parentNode;if(n&&n.removeChild(e),e.nodeType===w){var s=e.firstChild;if(null==s)return e;var r=e.lastChild}else s=r=e;var o=i?i.previousSibling:t.lastChild;s.previousSibling=o,r.nextSibling=i,o?o.nextSibling=s:t.firstChild=s,null==i?t.lastChild=r:i.previousSibling=r;do{s.parentNode=t}while(s!==r&&(s=s.nextSibling));return F(t.ownerDocument||t,t),e.nodeType==w&&(e.firstChild=e.lastChild=null),e}function H(){this._nsMap={}}function V(){}function X(){}function G(){}function Y(){}function $(){}function K(){}function Z(){}function J(){}function Q(){}function tt(){}function et(){}function it(){}function nt(t,e){var i=[],n=9==this.nodeType&&this.documentElement||this,s=n.prefix,r=n.namespaceURI;if(r&&null==s&&null==(s=n.lookupPrefix(r)))var o=[{namespace:r,prefix:null}];return ot(this,i,t,e,o),i.join(\"\")}function st(t,e,i){var s=t.prefix||\"\",r=t.namespaceURI;if(!r)return!1;if(\"xml\"===s&&r===n.XML||r===n.XMLNS)return!1;for(var o=i.length;o--;){var a=i[o];if(a.prefix===s)return a.namespace!==r}return!0}function rt(t,e,i){t.push(\" \",e,'=\"',i.replace(/[<&\"]/g,M),'\"')}function ot(t,e,i,s,r){if(r||(r=[]),s){if(!(t=s(t)))return;if(\"string\"==typeof t)return void e.push(t)}switch(t.nodeType){case c:var o=t.attributes,a=o.length,h=t.firstChild,l=t.tagName,g=l;if(!(i=n.isHTML(t.namespaceURI)||i)&&!t.prefix&&t.namespaceURI){for(var x,E=0;E<o.length;E++)if(\"xmlns\"===o.item(E).name){x=o.item(E).value;break}if(!x)for(var S=r.length-1;S>=0;S--){if(\"\"===(N=r[S]).prefix&&N.namespace===t.namespaceURI){x=N.namespace;break}}if(x!==t.namespaceURI)for(S=r.length-1;S>=0;S--){var N;if((N=r[S]).namespace===t.namespaceURI){N.prefix&&(g=N.prefix+\":\"+l);break}}}e.push(\"<\",g);for(var _=0;_<a;_++){\"xmlns\"==(T=o.item(_)).prefix?r.push({prefix:T.localName,namespace:T.value}):\"xmlns\"==T.nodeName&&r.push({prefix:\"\",namespace:T.value})}for(_=0;_<a;_++){var T,C,O;if(st(T=o.item(_),0,r))rt(e,(C=T.prefix||\"\")?\"xmlns:\"+C:\"xmlns\",O=T.namespaceURI),r.push({prefix:C,namespace:O});ot(T,e,i,s,r)}if(l===g&&st(t,0,r))rt(e,(C=t.prefix||\"\")?\"xmlns:\"+C:\"xmlns\",O=t.namespaceURI),r.push({prefix:C,namespace:O});if(h||i&&!/^(?:meta|link|img|br|hr|input)$/i.test(l)){if(e.push(\">\"),i&&/^script$/i.test(l))for(;h;)h.data?e.push(h.data):ot(h,e,i,s,r.slice()),h=h.nextSibling;else for(;h;)ot(h,e,i,s,r.slice()),h=h.nextSibling;e.push(\"</\",g,\">\")}else e.push(\"/>\");return;case y:case w:for(h=t.firstChild;h;)ot(h,e,i,s,r.slice()),h=h.nextSibling;return;case u:return rt(e,t.name,t.value);case d:return e.push(t.data.replace(/[<&]/g,M).replace(/]]>/g,\"]]>\"));case f:return e.push(\"<![CDATA[\",t.data,\"]]>\");case v:return e.push(\"\\x3c!--\",t.data,\"--\\x3e\");case b:var I=t.publicId,R=t.systemId;if(e.push(\"<!DOCTYPE \",t.name),I)e.push(\" PUBLIC \",I),R&&\".\"!=R&&e.push(\" \",R),e.push(\">\");else if(R&&\".\"!=R)e.push(\" SYSTEM \",R,\">\");else{var k=t.internalSubset;k&&e.push(\" [\",k,\"]\"),e.push(\">\")}return;case m:return e.push(\"<?\",t.target,\" \",t.data,\"?>\");case p:return e.push(\"&\",t.nodeName,\";\");default:e.push(\"??\",t.nodeName)}}function at(t,e,i){t[e]=i}C.prototype=Error.prototype,a(E,C),O.prototype={length:0,item:function(t){return this[t]||null},toString:function(t,e){for(var i=[],n=0;n<this.length;n++)ot(this[n],i,t,e);return i.join(\"\")}},I.prototype.item=function(t){return R(this),this[t]},h(I,O),k.prototype={length:0,item:O.prototype.item,getNamedItem:function(t){for(var e=this.length;e--;){var i=this[e];if(i.nodeName==t)return i}},setNamedItem:function(t){var e=t.ownerElement;if(e&&e!=this._ownerElement)throw new C(T);var i=this.getNamedItem(t.nodeName);return L(this._ownerElement,this,t,i),i},setNamedItemNS:function(t){var e,i=t.ownerElement;if(i&&i!=this._ownerElement)throw new C(T);return e=this.getNamedItemNS(t.namespaceURI,t.localName),L(this._ownerElement,this,t,e),e},removeNamedItem:function(t){var e=this.getNamedItem(t);return j(this._ownerElement,this,e),e},removeNamedItemNS:function(t,e){var i=this.getNamedItemNS(t,e);return j(this._ownerElement,this,i),i},getNamedItemNS:function(t,e){for(var i=this.length;i--;){var n=this[i];if(n.localName==e&&n.namespaceURI==t)return n}return null}},D.prototype={hasFeature:function(t,e){return!0},createDocument:function(t,e,i){var n=new B;if(n.implementation=this,n.childNodes=new O,n.doctype=i||null,i&&n.appendChild(i),e){var s=n.createElementNS(t,e);n.appendChild(s)}return n},createDocumentType:function(t,e,i){var n=new K;return n.name=t,n.nodeName=t,n.publicId=e||\"\",n.systemId=i||\"\",n}},P.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(t,e){return W(this,t,e)},replaceChild:function(t,e){this.insertBefore(t,e),e&&this.removeChild(e)},removeChild:function(t){return U(this,t)},appendChild:function(t){return this.insertBefore(t,null)},hasChildNodes:function(){return null!=this.firstChild},cloneNode:function(t){return function t(e,i,n){var s=new i.constructor;for(var r in i){var o=i[r];\"object\"!=typeof o&&o!=s[r]&&(s[r]=o)}i.childNodes&&(s.childNodes=new O);switch(s.ownerDocument=e,s.nodeType){case c:var a=i.attributes,h=s.attributes=new k,l=a.length;h._ownerElement=s;for(var d=0;d<l;d++)s.setAttributeNode(t(e,a.item(d),!0));break;case u:n=!0}if(n)for(var f=i.firstChild;f;)s.appendChild(t(e,f,n)),f=f.nextSibling;return s}(this.ownerDocument||this,this,t)},normalize:function(){for(var t=this.firstChild;t;){var e=t.nextSibling;e&&e.nodeType==d&&t.nodeType==d?(this.removeChild(e),t.appendData(e.data)):(t.normalize(),t=e)}},isSupported:function(t,e){return this.ownerDocument.implementation.hasFeature(t,e)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(t){for(var e=this;e;){var i=e._nsMap;if(i)for(var n in i)if(i[n]==t)return n;e=e.nodeType==u?e.ownerDocument:e.parentNode}return null},lookupNamespaceURI:function(t){for(var e=this;e;){var i=e._nsMap;if(i&&t in i)return i[t];e=e.nodeType==u?e.ownerDocument:e.parentNode}return null},isDefaultNamespace:function(t){return null==this.lookupPrefix(t)}},a(l,P),a(l,P.prototype),B.prototype={nodeName:\"#document\",nodeType:y,doctype:null,documentElement:null,_inc:1,insertBefore:function(t,e){if(t.nodeType==w){for(var i=t.firstChild;i;){var n=i.nextSibling;this.insertBefore(i,e),i=n}return t}return null==this.documentElement&&t.nodeType==c&&(this.documentElement=t),W(this,t,e),t.ownerDocument=this,t},removeChild:function(t){return this.documentElement==t&&(this.documentElement=null),U(this,t)},importNode:function(t,e){return function t(e,i,n){var s;switch(i.nodeType){case c:(s=i.cloneNode(!1)).ownerDocument=e;case w:break;case u:n=!0}s||(s=i.cloneNode(!1));if(s.ownerDocument=e,s.parentNode=null,n)for(var r=i.firstChild;r;)s.appendChild(t(e,r,n)),r=r.nextSibling;return s}(this,t,e)},getElementById:function(t){var e=null;return z(this.documentElement,(function(i){if(i.nodeType==c&&i.getAttribute(\"id\")==t)return e=i,!0})),e},getElementsByClassName:function(t){var e=o(t);return new I(this,(function(i){var n=[];return e.length>0&&z(i.documentElement,(function(s){if(s!==i&&s.nodeType===c){var r=s.getAttribute(\"class\");if(r){var a=t===r;if(!a){var h=o(r);a=e.every((l=h,function(t){return l&&-1!==l.indexOf(t)}))}a&&n.push(s)}}var l})),n}))},createElement:function(t){var e=new H;return e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.localName=t,e.childNodes=new O,(e.attributes=new k)._ownerElement=e,e},createDocumentFragment:function(){var t=new tt;return t.ownerDocument=this,t.childNodes=new O,t},createTextNode:function(t){var e=new G;return e.ownerDocument=this,e.appendData(t),e},createComment:function(t){var e=new Y;return e.ownerDocument=this,e.appendData(t),e},createCDATASection:function(t){var e=new $;return e.ownerDocument=this,e.appendData(t),e},createProcessingInstruction:function(t,e){var i=new et;return i.ownerDocument=this,i.tagName=i.target=t,i.nodeValue=i.data=e,i},createAttribute:function(t){var e=new V;return e.ownerDocument=this,e.name=t,e.nodeName=t,e.localName=t,e.specified=!0,e},createEntityReference:function(t){var e=new Q;return e.ownerDocument=this,e.nodeName=t,e},createElementNS:function(t,e){var i=new H,n=e.split(\":\"),s=i.attributes=new k;return i.childNodes=new O,i.ownerDocument=this,i.nodeName=e,i.tagName=e,i.namespaceURI=t,2==n.length?(i.prefix=n[0],i.localName=n[1]):i.localName=e,s._ownerElement=i,i},createAttributeNS:function(t,e){var i=new V,n=e.split(\":\");return i.ownerDocument=this,i.nodeName=e,i.name=e,i.namespaceURI=t,i.specified=!0,2==n.length?(i.prefix=n[0],i.localName=n[1]):i.localName=e,i}},h(B,P),H.prototype={nodeType:c,hasAttribute:function(t){return null!=this.getAttributeNode(t)},getAttribute:function(t){var e=this.getAttributeNode(t);return e&&e.value||\"\"},getAttributeNode:function(t){return this.attributes.getNamedItem(t)},setAttribute:function(t,e){var i=this.ownerDocument.createAttribute(t);i.value=i.nodeValue=\"\"+e,this.setAttributeNode(i)},removeAttribute:function(t){var e=this.getAttributeNode(t);e&&this.removeAttributeNode(e)},appendChild:function(t){return t.nodeType===w?this.insertBefore(t,null):function(t,e){var i=e.parentNode;if(i){var n=t.lastChild;i.removeChild(e);n=t.lastChild}return n=t.lastChild,e.parentNode=t,e.previousSibling=n,e.nextSibling=null,n?n.nextSibling=e:t.firstChild=e,t.lastChild=e,F(t.ownerDocument,t,e),e}(this,t)},setAttributeNode:function(t){return this.attributes.setNamedItem(t)},setAttributeNodeNS:function(t){return this.attributes.setNamedItemNS(t)},removeAttributeNode:function(t){return this.attributes.removeNamedItem(t.nodeName)},removeAttributeNS:function(t,e){var i=this.getAttributeNodeNS(t,e);i&&this.removeAttributeNode(i)},hasAttributeNS:function(t,e){return null!=this.getAttributeNodeNS(t,e)},getAttributeNS:function(t,e){var i=this.getAttributeNodeNS(t,e);return i&&i.value||\"\"},setAttributeNS:function(t,e,i){var n=this.ownerDocument.createAttributeNS(t,e);n.value=n.nodeValue=\"\"+i,this.setAttributeNode(n)},getAttributeNodeNS:function(t,e){return this.attributes.getNamedItemNS(t,e)},getElementsByTagName:function(t){return new I(this,(function(e){var i=[];return z(e,(function(n){n===e||n.nodeType!=c||\"*\"!==t&&n.tagName!=t||i.push(n)})),i}))},getElementsByTagNameNS:function(t,e){return new I(this,(function(i){var n=[];return z(i,(function(s){s===i||s.nodeType!==c||\"*\"!==t&&s.namespaceURI!==t||\"*\"!==e&&s.localName!=e||n.push(s)})),n}))}},B.prototype.getElementsByTagName=H.prototype.getElementsByTagName,B.prototype.getElementsByTagNameNS=H.prototype.getElementsByTagNameNS,h(H,P),V.prototype.nodeType=u,h(V,P),X.prototype={data:\"\",substringData:function(t,e){return this.data.substring(t,t+e)},appendData:function(t){t=this.data+t,this.nodeValue=this.data=t,this.length=t.length},insertData:function(t,e){this.replaceData(t,0,e)},appendChild:function(t){throw new Error(S[N])},deleteData:function(t,e){this.replaceData(t,e,\"\")},replaceData:function(t,e,i){i=this.data.substring(0,t)+i+this.data.substring(t+e),this.nodeValue=this.data=i,this.length=i.length}},h(X,P),G.prototype={nodeName:\"#text\",nodeType:d,splitText:function(t){var e=this.data,i=e.substring(t);e=e.substring(0,t),this.data=this.nodeValue=e,this.length=e.length;var n=this.ownerDocument.createTextNode(i);return this.parentNode&&this.parentNode.insertBefore(n,this.nextSibling),n}},h(G,X),Y.prototype={nodeName:\"#comment\",nodeType:v},h(Y,X),$.prototype={nodeName:\"#cdata-section\",nodeType:f},h($,X),K.prototype.nodeType=b,h(K,P),Z.prototype.nodeType=x,h(Z,P),J.prototype.nodeType=g,h(J,P),Q.prototype.nodeType=p,h(Q,P),tt.prototype.nodeName=\"#document-fragment\",tt.prototype.nodeType=w,h(tt,P),et.prototype.nodeType=m,h(et,P),it.prototype.serializeToString=function(t,e,i){return nt.call(t,e,i)},P.prototype.toString=nt;try{if(Object.defineProperty){Object.defineProperty(I.prototype,\"length\",{get:function(){return R(this),this.$$length}}),Object.defineProperty(P.prototype,\"textContent\",{get:function(){return function t(e){switch(e.nodeType){case c:case w:var i=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&i.push(t(e)),e=e.nextSibling;return i.join(\"\");default:return e.nodeValue}}(this)},set:function(t){switch(this.nodeType){case c:case w:for(;this.firstChild;)this.removeChild(this.firstChild);(t||String(t))&&this.appendChild(this.ownerDocument.createTextNode(t));break;default:this.data=t,this.value=t,this.nodeValue=t}}}),at=function(t,e,i){t[\"$$\"+e]=i}}}catch(t){}e.DocumentType=K,e.DOMException=C,e.DOMImplementation=D,e.Element=H,e.Node=P,e.NodeList=O,e.XMLSerializer=it},function(t,e,i){var n=i(52),s=\"object\"==typeof self&&self&&self.Object===Object&&self,r=n||s||Function(\"return this\")();t.exports=r},function(t,e,i){var n=i(26).Symbol;t.exports=n},function(t,e,i){var n=i(21),s=i(19);t.exports=function(t,e,i){var r=!0,o=!0;if(\"function\"!=typeof t)throw new TypeError(\"Expected a function\");return s(i)&&(r=\"leading\"in i?!!i.leading:r,o=\"trailing\"in i?!!i.trailing:o),n(t,e,{leading:r,maxWait:e,trailing:o})}},function(e,i){e.exports=t},function(t,e,i){\"use strict\";i.r(e),function(t){var n=i(24),s=i(16),r=i(2),o=i(12),a=i(0),h=i(1);i(20),i(10),i(22);function l(t,e){return new n.a(t,e)}l.VERSION=h.b,void 0!==t&&(t.EPUBJS_VERSION=h.b),l.Book=n.a,l.Rendition=s.a,l.Contents=o.a,l.CFI=r.a,l.utils=a,e.default=l}.call(this,i(17))},function(t,e,i){\"use strict\";var n=i(32),s=i(40),r=i(41),o=i(42);(t.exports=function(t,e){var i,r,a,h,l;return arguments.length<2||\"string\"!=typeof t?(h=e,e=t,t=null):h=arguments[2],null==t?(i=a=!0,r=!1):(i=o.call(t,\"c\"),r=o.call(t,\"e\"),a=o.call(t,\"w\")),l={value:e,configurable:i,enumerable:r,writable:a},h?n(s(h),l):l}).gs=function(t,e,i){var a,h,l,c;return\"string\"!=typeof t?(l=i,i=e,e=t,t=null):l=arguments[3],null==e?e=void 0:r(e)?null==i?i=void 0:r(i)||(l=i,i=void 0):(l=e,e=i=void 0),null==t?(a=!0,h=!1):(a=o.call(t,\"c\"),h=o.call(t,\"e\")),c={get:e,set:i,configurable:a,enumerable:h},l?n(s(l),c):c}},function(t,e,i){\"use strict\";t.exports=i(33)()?Object.assign:i(34)},function(t,e,i){\"use strict\";t.exports=function(){var t,e=Object.assign;return\"function\"==typeof e&&(e(t={foo:\"raz\"},{bar:\"dwa\"},{trzy:\"trzy\"}),t.foo+t.bar+t.trzy===\"razdwatrzy\")}},function(t,e,i){\"use strict\";var n=i(35),s=i(39),r=Math.max;t.exports=function(t,e){var i,o,a,h=r(arguments.length,2);for(t=Object(s(t)),a=function(n){try{t[n]=e[n]}catch(t){i||(i=t)}},o=1;o<h;++o)n(e=arguments[o]).forEach(a);if(void 0!==i)throw i;return t}},function(t,e,i){\"use strict\";t.exports=i(36)()?Object.keys:i(37)},function(t,e,i){\"use strict\";t.exports=function(){try{return Object.keys(\"primitive\"),!0}catch(t){return!1}}},function(t,e,i){\"use strict\";var n=i(18),s=Object.keys;t.exports=function(t){return s(n(t)?Object(t):t)}},function(t,e,i){\"use strict\";t.exports=function(){}},function(t,e,i){\"use strict\";var n=i(18);t.exports=function(t){if(!n(t))throw new TypeError(\"Cannot use null or undefined\");return t}},function(t,e,i){\"use strict\";var n=i(18),s=Array.prototype.forEach,r=Object.create,o=function(t,e){var i;for(i in t)e[i]=t[i]};t.exports=function(t){var e=r(null);return s.call(arguments,(function(t){n(t)&&o(Object(t),e)})),e}},function(t,e,i){\"use strict\";t.exports=function(t){return\"function\"==typeof t}},function(t,e,i){\"use strict\";t.exports=i(43)()?String.prototype.contains:i(44)},function(t,e,i){\"use strict\";var n=\"razdwatrzy\";t.exports=function(){return\"function\"==typeof n.contains&&(!0===n.contains(\"dwa\")&&!1===n.contains(\"foo\"))}},function(t,e,i){\"use strict\";var n=String.prototype.indexOf;t.exports=function(t){return n.call(this,t,arguments[1])>-1}},function(t,e,i){\"use strict\";t.exports=function(t){if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");return t}},function(t,e,i){var n=i(14),s=i(25),r=i(47),o=i(48),a=s.DOMImplementation,h=n.NAMESPACE,l=o.ParseError,c=o.XMLReader;function u(t){this.options=t||{locator:{}}}function d(){this.cdata=!1}function f(t,e){e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber}function p(t){if(t)return\"\\n@\"+(t.systemId||\"\")+\"#[line:\"+t.lineNumber+\",col:\"+t.columnNumber+\"]\"}function g(t,e,i){return\"string\"==typeof t?t.substr(e,i):t.length>=e+i||e?new java.lang.String(t,e,i)+\"\":t}function m(t,e){t.currentElement?t.currentElement.appendChild(e):t.doc.appendChild(e)}u.prototype.parseFromString=function(t,e){var i=this.options,n=new c,s=i.domBuilder||new d,o=i.errorHandler,a=i.locator,l=i.xmlns||{},u=/\\/x?html?$/.test(e),f=u?r.HTML_ENTITIES:r.XML_ENTITIES;return a&&s.setDocumentLocator(a),n.errorHandler=function(t,e,i){if(!t){if(e instanceof d)return e;t=e}var n={},s=t instanceof Function;function r(e){var r=t[e];!r&&s&&(r=2==t.length?function(i){t(e,i)}:t),n[e]=r&&function(t){r(\"[xmldom \"+e+\"]\\t\"+t+p(i))}||function(){}}return i=i||{},r(\"warning\"),r(\"error\"),r(\"fatalError\"),n}(o,s,a),n.domBuilder=i.domBuilder||s,u&&(l[\"\"]=h.HTML),l.xml=l.xml||h.XML,t&&\"string\"==typeof t?n.parse(t,l,f):n.errorHandler.error(\"invalid doc source\"),s.doc},d.prototype={startDocument:function(){this.doc=(new a).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(t,e,i,n){var s=this.doc,r=s.createElementNS(t,i||e),o=n.length;m(this,r),this.currentElement=r,this.locator&&f(this.locator,r);for(var a=0;a<o;a++){t=n.getURI(a);var h=n.getValue(a),l=(i=n.getQName(a),s.createAttributeNS(t,i));this.locator&&f(n.getLocator(a),l),l.value=l.nodeValue=h,r.setAttributeNode(l)}},endElement:function(t,e,i){var n=this.currentElement;n.tagName;this.currentElement=n.parentNode},startPrefixMapping:function(t,e){},endPrefixMapping:function(t){},processingInstruction:function(t,e){var i=this.doc.createProcessingInstruction(t,e);this.locator&&f(this.locator,i),m(this,i)},ignorableWhitespace:function(t,e,i){},characters:function(t,e,i){if(t=g.apply(this,arguments)){if(this.cdata)var n=this.doc.createCDATASection(t);else n=this.doc.createTextNode(t);this.currentElement?this.currentElement.appendChild(n):/^\\s*$/.test(t)&&this.doc.appendChild(n),this.locator&&f(this.locator,n)}},skippedEntity:function(t){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(t){(this.locator=t)&&(t.lineNumber=0)},comment:function(t,e,i){t=g.apply(this,arguments);var n=this.doc.createComment(t);this.locator&&f(this.locator,n),m(this,n)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(t,e,i){var n=this.doc.implementation;if(n&&n.createDocumentType){var s=n.createDocumentType(t,e,i);this.locator&&f(this.locator,s),m(this,s),this.doc.doctype=s}},warning:function(t){console.warn(\"[xmldom warning]\\t\"+t,p(this.locator))},error:function(t){console.error(\"[xmldom error]\\t\"+t,p(this.locator))},fatalError:function(t){throw new l(t,this.locator)}},\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,(function(t){d.prototype[t]=function(){return null}})),e.__DOMHandler=d,e.DOMParser=u,e.DOMImplementation=s.DOMImplementation,e.XMLSerializer=s.XMLSerializer},function(t,e,i){var n=i(14).freeze;e.XML_ENTITIES=n({amp:\"&\",apos:\"'\",gt:\">\",lt:\"<\",quot:'\"'}),e.HTML_ENTITIES=n({lt:\"<\",gt:\">\",amp:\"&\",quot:'\"',apos:\"'\",Agrave:\"À\",Aacute:\"Á\",Acirc:\"Â\",Atilde:\"Ã\",Auml:\"Ä\",Aring:\"Å\",AElig:\"Æ\",Ccedil:\"Ç\",Egrave:\"È\",Eacute:\"É\",Ecirc:\"Ê\",Euml:\"Ë\",Igrave:\"Ì\",Iacute:\"Í\",Icirc:\"Î\",Iuml:\"Ï\",ETH:\"Ð\",Ntilde:\"Ñ\",Ograve:\"Ò\",Oacute:\"Ó\",Ocirc:\"Ô\",Otilde:\"Õ\",Ouml:\"Ö\",Oslash:\"Ø\",Ugrave:\"Ù\",Uacute:\"Ú\",Ucirc:\"Û\",Uuml:\"Ü\",Yacute:\"Ý\",THORN:\"Þ\",szlig:\"ß\",agrave:\"à\",aacute:\"á\",acirc:\"â\",atilde:\"ã\",auml:\"ä\",aring:\"å\",aelig:\"æ\",ccedil:\"ç\",egrave:\"è\",eacute:\"é\",ecirc:\"ê\",euml:\"ë\",igrave:\"ì\",iacute:\"í\",icirc:\"î\",iuml:\"ï\",eth:\"ð\",ntilde:\"ñ\",ograve:\"ò\",oacute:\"ó\",ocirc:\"ô\",otilde:\"õ\",ouml:\"ö\",oslash:\"ø\",ugrave:\"ù\",uacute:\"ú\",ucirc:\"û\",uuml:\"ü\",yacute:\"ý\",thorn:\"þ\",yuml:\"ÿ\",nbsp:\" \",iexcl:\"¡\",cent:\"¢\",pound:\"£\",curren:\"¤\",yen:\"¥\",brvbar:\"¦\",sect:\"§\",uml:\"¨\",copy:\"©\",ordf:\"ª\",laquo:\"«\",not:\"¬\",shy:\"\",reg:\"®\",macr:\"¯\",deg:\"°\",plusmn:\"±\",sup2:\"²\",sup3:\"³\",acute:\"´\",micro:\"µ\",para:\"¶\",middot:\"·\",cedil:\"¸\",sup1:\"¹\",ordm:\"º\",raquo:\"»\",frac14:\"¼\",frac12:\"½\",frac34:\"¾\",iquest:\"¿\",times:\"×\",divide:\"÷\",forall:\"∀\",part:\"∂\",exist:\"∃\",empty:\"∅\",nabla:\"∇\",isin:\"∈\",notin:\"∉\",ni:\"∋\",prod:\"∏\",sum:\"∑\",minus:\"−\",lowast:\"∗\",radic:\"√\",prop:\"∝\",infin:\"∞\",ang:\"∠\",and:\"∧\",or:\"∨\",cap:\"∩\",cup:\"∪\",int:\"∫\",there4:\"∴\",sim:\"∼\",cong:\"≅\",asymp:\"≈\",ne:\"≠\",equiv:\"≡\",le:\"≤\",ge:\"≥\",sub:\"⊂\",sup:\"⊃\",nsub:\"⊄\",sube:\"⊆\",supe:\"⊇\",oplus:\"⊕\",otimes:\"⊗\",perp:\"⊥\",sdot:\"⋅\",Alpha:\"Α\",Beta:\"Β\",Gamma:\"Γ\",Delta:\"Δ\",Epsilon:\"Ε\",Zeta:\"Ζ\",Eta:\"Η\",Theta:\"Θ\",Iota:\"Ι\",Kappa:\"Κ\",Lambda:\"Λ\",Mu:\"Μ\",Nu:\"Ν\",Xi:\"Ξ\",Omicron:\"Ο\",Pi:\"Π\",Rho:\"Ρ\",Sigma:\"Σ\",Tau:\"Τ\",Upsilon:\"Υ\",Phi:\"Φ\",Chi:\"Χ\",Psi:\"Ψ\",Omega:\"Ω\",alpha:\"α\",beta:\"β\",gamma:\"γ\",delta:\"δ\",epsilon:\"ε\",zeta:\"ζ\",eta:\"η\",theta:\"θ\",iota:\"ι\",kappa:\"κ\",lambda:\"λ\",mu:\"μ\",nu:\"ν\",xi:\"ξ\",omicron:\"ο\",pi:\"π\",rho:\"ρ\",sigmaf:\"ς\",sigma:\"σ\",tau:\"τ\",upsilon:\"υ\",phi:\"φ\",chi:\"χ\",psi:\"ψ\",omega:\"ω\",thetasym:\"ϑ\",upsih:\"ϒ\",piv:\"ϖ\",OElig:\"Œ\",oelig:\"œ\",Scaron:\"Š\",scaron:\"š\",Yuml:\"Ÿ\",fnof:\"ƒ\",circ:\"ˆ\",tilde:\"˜\",ensp:\" \",emsp:\" \",thinsp:\" \",zwnj:\"\",zwj:\"\",lrm:\"\",rlm:\"\",ndash:\"–\",mdash:\"—\",lsquo:\"‘\",rsquo:\"’\",sbquo:\"‚\",ldquo:\"“\",rdquo:\"”\",bdquo:\"„\",dagger:\"†\",Dagger:\"‡\",bull:\"•\",hellip:\"…\",permil:\"‰\",prime:\"′\",Prime:\"″\",lsaquo:\"‹\",rsaquo:\"›\",oline:\"‾\",euro:\"€\",trade:\"™\",larr:\"←\",uarr:\"↑\",rarr:\"→\",darr:\"↓\",harr:\"↔\",crarr:\"↵\",lceil:\"⌈\",rceil:\"⌉\",lfloor:\"⌊\",rfloor:\"⌋\",loz:\"◊\",spades:\"♠\",clubs:\"♣\",hearts:\"♥\",diams:\"♦\"}),e.entityMap=e.HTML_ENTITIES},function(t,e,i){var n=i(14).NAMESPACE,s=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,r=new RegExp(\"[\\\\-\\\\.0-9\"+s.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\"),o=new RegExp(\"^\"+s.source+r.source+\"*(?::\"+s.source+r.source+\"*)?$\");function a(t,e){this.message=t,this.locator=e,Error.captureStackTrace&&Error.captureStackTrace(this,a)}function h(){}function l(t,e){return e.lineNumber=t.lineNumber,e.columnNumber=t.columnNumber,e}function c(t,e,i,s,r,o){function a(t,e,n){i.attributeNames.hasOwnProperty(t)&&o.fatalError(\"Attribute \"+t+\" redefined\"),i.addValue(t,e,n)}for(var h,l=++e,c=0;;){var u=t.charAt(l);switch(u){case\"=\":if(1===c)h=t.slice(e,l),c=3;else{if(2!==c)throw new Error(\"attribute equal must after attrName\");c=3}break;case\"'\":case'\"':if(3===c||1===c){if(1===c&&(o.warning('attribute value must after \"=\"'),h=t.slice(e,l)),e=l+1,!((l=t.indexOf(u,e))>0))throw new Error(\"attribute value no end '\"+u+\"' match\");a(h,d=t.slice(e,l).replace(/&#?\\w+;/g,r),e-1),c=5}else{if(4!=c)throw new Error('attribute value must after \"=\"');a(h,d=t.slice(e,l).replace(/&#?\\w+;/g,r),e),o.warning('attribute \"'+h+'\" missed start quot('+u+\")!!\"),e=l+1,c=5}break;case\"/\":switch(c){case 0:i.setTagName(t.slice(e,l));case 5:case 6:case 7:c=7,i.closed=!0;case 4:case 1:case 2:break;default:throw new Error(\"attribute invalid close char('/')\")}break;case\"\":return o.error(\"unexpected end of input\"),0==c&&i.setTagName(t.slice(e,l)),l;case\">\":switch(c){case 0:i.setTagName(t.slice(e,l));case 5:case 6:case 7:break;case 4:case 1:\"/\"===(d=t.slice(e,l)).slice(-1)&&(i.closed=!0,d=d.slice(0,-1));case 2:2===c&&(d=h),4==c?(o.warning('attribute \"'+d+'\" missed quot(\")!'),a(h,d.replace(/&#?\\w+;/g,r),e)):(n.isHTML(s[\"\"])&&d.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute \"'+d+'\" missed value!! \"'+d+'\" instead!!'),a(d,d,e));break;case 3:throw new Error(\"attribute value missed!!\")}return l;case\"\":u=\" \";default:if(u<=\" \")switch(c){case 0:i.setTagName(t.slice(e,l)),c=6;break;case 1:h=t.slice(e,l),c=2;break;case 4:var d=t.slice(e,l).replace(/&#?\\w+;/g,r);o.warning('attribute \"'+d+'\" missed quot(\")!!'),a(h,d,e);case 5:c=6}else switch(c){case 2:i.tagName;n.isHTML(s[\"\"])&&h.match(/^(?:disabled|checked|selected)$/i)||o.warning('attribute \"'+h+'\" missed value!! \"'+h+'\" instead2!!'),a(h,h,e),e=l,c=1;break;case 5:o.warning('attribute space is required\"'+h+'\"!!');case 6:c=1,e=l;break;case 3:c=4,e=l;break;case 7:throw new Error(\"elements closed character '/' and '>' must be connected to\")}}l++}}function u(t,e,i){for(var s=t.tagName,r=null,o=t.length;o--;){var a=t[o],h=a.qName,l=a.value;if((f=h.indexOf(\":\"))>0)var c=a.prefix=h.slice(0,f),u=h.slice(f+1),d=\"xmlns\"===c&&u;else u=h,c=null,d=\"xmlns\"===h&&\"\";a.localName=u,!1!==d&&(null==r&&(r={},p(i,i={})),i[d]=r[d]=l,a.uri=n.XMLNS,e.startPrefixMapping(d,l))}for(o=t.length;o--;){(c=(a=t[o]).prefix)&&(\"xml\"===c&&(a.uri=n.XML),\"xmlns\"!==c&&(a.uri=i[c||\"\"]))}var f;(f=s.indexOf(\":\"))>0?(c=t.prefix=s.slice(0,f),u=t.localName=s.slice(f+1)):(c=null,u=t.localName=s);var g=t.uri=i[c||\"\"];if(e.startElement(g,u,s,t),!t.closed)return t.currentNSMap=i,t.localNSMap=r,!0;if(e.endElement(g,u,s),r)for(c in r)e.endPrefixMapping(c)}function d(t,e,i,n,s){if(/^(?:script|textarea)$/i.test(i)){var r=t.indexOf(\"</\"+i+\">\",e),o=t.substring(e+1,r);if(/[&<]/.test(o))return/^script$/i.test(i)?(s.characters(o,0,o.length),r):(o=o.replace(/&#?\\w+;/g,n),s.characters(o,0,o.length),r)}return e+1}function f(t,e,i,n){var s=n[i];return null==s&&((s=t.lastIndexOf(\"</\"+i+\">\"))<e&&(s=t.lastIndexOf(\"</\"+i)),n[i]=s),s<e}function p(t,e){for(var i in t)e[i]=t[i]}function g(t,e,i,n){switch(t.charAt(e+2)){case\"-\":return\"-\"===t.charAt(e+3)?(s=t.indexOf(\"--\\x3e\",e+4))>e?(i.comment(t,e+4,s-e-4),s+3):(n.error(\"Unclosed comment\"),-1):-1;default:if(\"CDATA[\"==t.substr(e+3,6)){var s=t.indexOf(\"]]>\",e+9);return i.startCDATA(),i.characters(t,e+9,s-e-9),i.endCDATA(),s+3}var r=function(t,e){var i,n=[],s=/'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;s.lastIndex=e,s.exec(t);for(;i=s.exec(t);)if(n.push(i),i[1])return n}(t,e),o=r.length;if(o>1&&/!doctype/i.test(r[0][0])){var a=r[1][0],h=!1,l=!1;o>3&&(/^public$/i.test(r[2][0])?(h=r[3][0],l=o>4&&r[4][0]):/^system$/i.test(r[2][0])&&(l=r[3][0]));var c=r[o-1];return i.startDTD(a,h,l),i.endDTD(),c.index+c[0].length}}return-1}function m(t,e,i){var n=t.indexOf(\"?>\",e);if(n){var s=t.substring(e,n).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(s){s[0].length;return i.processingInstruction(s[1],s[2]),n+2}return-1}return-1}function v(){this.attributeNames={}}a.prototype=new Error,a.prototype.name=a.name,h.prototype={parse:function(t,e,i){var s=this.domBuilder;s.startDocument(),p(e,e={}),function(t,e,i,s,r){function o(t){var e=t.slice(1,-1);return e in i?i[e]:\"#\"===e.charAt(0)?function(t){if(t>65535){var e=55296+((t-=65536)>>10),i=56320+(1023&t);return String.fromCharCode(e,i)}return String.fromCharCode(t)}(parseInt(e.substr(1).replace(\"x\",\"0x\"))):(r.error(\"entity not found:\"+t),t)}function h(e){if(e>N){var i=t.substring(N,e).replace(/&#?\\w+;/g,o);x&&p(N),s.characters(i,0,e-N),N=e}}function p(e,i){for(;e>=b&&(i=w.exec(t));)y=i.index,b=y+i[0].length,x.lineNumber++;x.columnNumber=e-y+1}var y=0,b=0,w=/.*(?:\\r\\n?|\\n)|.*$/g,x=s.locator,E=[{currentNSMap:e}],S={},N=0;for(;;){try{var _=t.indexOf(\"<\",N);if(_<0){if(!t.substr(N).match(/^\\s*$/)){var T=s.doc,C=T.createTextNode(t.substr(N));T.appendChild(C),s.currentElement=C}return}switch(_>N&&h(_),t.charAt(_+1)){case\"/\":var O=t.indexOf(\">\",_+3),I=t.substring(_+2,O).replace(/[ \\t\\n\\r]+$/g,\"\"),R=E.pop();O<0?(I=t.substring(_+2).replace(/[\\s<].*/,\"\"),r.error(\"end tag name: \"+I+\" is not complete:\"+R.tagName),O=_+1+I.length):I.match(/\\s</)&&(I=I.replace(/[\\s<].*/,\"\"),r.error(\"end tag name: \"+I+\" maybe not complete\"),O=_+1+I.length);var k=R.localNSMap,A=R.tagName==I;if(A||R.tagName&&R.tagName.toLowerCase()==I.toLowerCase()){if(s.endElement(R.uri,R.localName,I),k)for(var L in k)s.endPrefixMapping(L);A||r.fatalError(\"end tag name: \"+I+\" is not match the current start tagName:\"+R.tagName)}else E.push(R);O++;break;case\"?\":x&&p(_),O=m(t,_,s);break;case\"!\":x&&p(_),O=g(t,_,s,r);break;default:x&&p(_);var j=new v,D=E[E.length-1].currentNSMap,P=(O=c(t,_,j,D,o,r),j.length);if(!j.closed&&f(t,O,j.tagName,S)&&(j.closed=!0,i.nbsp||r.warning(\"unclosed xml attribute\")),x&&P){for(var M=l(x,{}),z=0;z<P;z++){var B=j[z];p(B.offset),B.locator=l(x,{})}s.locator=M,u(j,s,D)&&E.push(j),s.locator=x}else u(j,s,D)&&E.push(j);n.isHTML(j.uri)&&!j.closed?O=d(t,O,j.tagName,o,s):O++}}catch(t){if(t instanceof a)throw t;r.error(\"element parse error: \"+t),O=-1}O>N?N=O:h(Math.max(_,N)+1)}}(t,e,i,s,this.errorHandler),s.endDocument()}},v.prototype={setTagName:function(t){if(!o.test(t))throw new Error(\"invalid tagName:\"+t);this.tagName=t},addValue:function(t,e,i){if(!o.test(t))throw new Error(\"invalid attribute:\"+t);this.attributeNames[t]=this.length,this[this.length++]={qName:t,value:e,offset:i}},length:0,getLocalName:function(t){return this[t].localName},getLocator:function(t){return this[t].locator},getQName:function(t){return this[t].qName},getURI:function(t){return this[t].uri},getValue:function(t){return this[t].value}},e.XMLReader=h,e.ParseError=a},function(t,e,i){\"use strict\";function n(t){return document.createElementNS(\"http://www.w3.org/2000/svg\",t)}Object.defineProperty(e,\"__esModule\",{value:!0}),e.createElement=n,e.default={createElement:n}},function(t,e,i){\"use strict\";function n(t,e){function i(i){for(var n=e.length-1;n>=0;n--){var o=e[n],a=i.clientX,h=i.clientY;if(i.touches&&i.touches.length&&(a=i.touches[0].clientX,h=i.touches[0].clientY),r(o,t,a,h)){o.dispatchEvent(s(i));break}}}if(\"iframe\"===t.nodeName||\"IFRAME\"===t.nodeName)try{this.target=t.contentDocument}catch(e){this.target=t}else this.target=t;for(var n=[\"mouseup\",\"mousedown\",\"click\",\"touchstart\"],o=0;o<n.length;o++){var a=n[o];this.target.addEventListener(a,(function(t){return i(t)}),!1)}}function s(t){var e=Object.assign({},t,{bubbles:!1});try{return new MouseEvent(t.type,e)}catch(n){var i=document.createEvent(\"MouseEvents\");return i.initMouseEvent(t.type,!1,e.cancelable,e.view,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget),i}}function r(t,e,i,n){var s=e.getBoundingClientRect();function r(t,e,i){var n=t.top-s.top,r=t.left-s.left,o=n+t.height,a=r+t.width;return n<=i&&r<=e&&o>i&&a>e}if(!r(t.getBoundingClientRect(),i,n))return!1;for(var o=t.getClientRects(),a=0,h=o.length;a<h;a++)if(r(o[a],i,n))return!0;return!1}Object.defineProperty(e,\"__esModule\",{value:!0}),e.proxyMouse=n,e.clone=s,e.default={proxyMouse:n}},function(t,e,i){var n=i(26);t.exports=function(){return n.Date.now()}},function(t,e,i){(function(e){var i=\"object\"==typeof e&&e&&e.Object===Object&&e;t.exports=i}).call(this,i(17))},function(t,e,i){var n=i(54),s=i(19),r=i(56),o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,h=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if(\"number\"==typeof t)return t;if(r(t))return NaN;if(s(t)){var e=\"function\"==typeof t.valueOf?t.valueOf():t;t=s(e)?e+\"\":e}if(\"string\"!=typeof t)return 0===t?t:+t;t=n(t);var i=a.test(t);return i||h.test(t)?l(t.slice(2),i?2:8):o.test(t)?NaN:+t}},function(t,e,i){var n=i(55),s=/^\\s+/;t.exports=function(t){return t?t.slice(0,n(t)+1).replace(s,\"\"):t}},function(t,e){var i=/\\s/;t.exports=function(t){for(var e=t.length;e--&&i.test(t.charAt(e)););return e}},function(t,e,i){var n=i(57),s=i(60);t.exports=function(t){return\"symbol\"==typeof t||s(t)&&\"[object Symbol]\"==n(t)}},function(t,e,i){var n=i(27),s=i(58),r=i(59),o=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":o&&o in Object(t)?s(t):r(t)}},function(t,e,i){var n=i(27),s=Object.prototype,r=s.hasOwnProperty,o=s.toString,a=n?n.toStringTag:void 0;t.exports=function(t){var e=r.call(t,a),i=t[a];try{t[a]=void 0;var n=!0}catch(t){}var s=o.call(t);return n&&(e?t[a]=i:delete t[a]),s}},function(t,e){var i=Object.prototype.toString;t.exports=function(t){return i.call(t)}},function(t,e){t.exports=function(t){return null!=t&&\"object\"==typeof t}}]).default}));\r\n </script>\r\n <script>\r\n(function () {\r\n const viewer = document.getElementById('viewer');\r\n const DEFAULT_FONT_SIZE = 16;\r\n const TEXT_PAGE_CHUNK = 1600;\r\n\r\n let currentType = null;\r\n let book = null;\r\n let rendition = null;\r\n let spineItems = [];\r\n let textPages = [];\r\n let textContainer = null;\r\n let currentPage = 1;\r\n let pageCount = 0;\r\n let zoom = 1.0;\r\n\r\n const sendMessage = (payload) => {\r\n if (window.ReactNativeWebView && window.ReactNativeWebView.postMessage) {\r\n window.ReactNativeWebView.postMessage(JSON.stringify(payload));\r\n return;\r\n }\r\n if (window.parent && window.parent !== window) {\r\n window.parent.postMessage(payload, '*');\r\n }\r\n };\r\n\r\n const sendResponse = (id, ok, data, error) => {\r\n sendMessage({ type: 'response', id, ok, data, error });\r\n };\r\n\r\n const sendState = (extra) => {\r\n sendMessage({\r\n type: 'state',\r\n payload: {\r\n pageCount,\r\n currentPage,\r\n zoom,\r\n ...(extra || {}),\r\n },\r\n });\r\n };\r\n\r\n const sendEvent = (name, payload) => {\r\n sendMessage({ type: 'event', name, payload });\r\n };\r\n\r\n const log = (...args) => {\r\n sendEvent('RUNTIME_LOG', { message: args.map((value) => String(value)).join(' ') });\r\n };\r\n\r\n const reportError = (error, context) => {\r\n const message = error && error.message ? error.message : String(error);\r\n const stack = error && error.stack ? error.stack : null;\r\n sendEvent('RUNTIME_ERROR', { message, context, stack });\r\n };\r\n\r\n const withTimeout = async (promise, ms, label) => {\r\n let timer = null;\r\n try {\r\n return await Promise.race([\r\n promise,\r\n new Promise((_, reject) => {\r\n timer = setTimeout(() => reject(new Error(`Timeout: ${label}`)), ms);\r\n }),\r\n ]);\r\n } finally {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n }\r\n };\r\n\r\n const shouldIgnoreError = (error) => {\n const message = error && error.message ? error.message : String(error || '');\n return message.includes('ResizeObserver loop');\n };\n\n window.addEventListener('error', (event) => {\n const error = event.error || event.message;\n if (shouldIgnoreError(error)) return;\n reportError(error, 'window.error');\n });\n\n window.addEventListener('unhandledrejection', (event) => {\n if (shouldIgnoreError(event.reason)) return;\n reportError(event.reason, 'unhandledrejection');\n });\n\r\n const clearViewer = () => {\r\n while (viewer.firstChild) {\r\n viewer.removeChild(viewer.firstChild);\r\n }\r\n };\r\n\r\n const decodeBase64 = (value) => {\r\n const clean = value.replace(/\\s/g, '');\r\n const binary = atob(clean);\r\n const len = binary.length;\r\n const bytes = new Uint8Array(len);\r\n for (let i = 0; i < len; i += 1) {\r\n bytes[i] = binary.charCodeAt(i);\r\n }\r\n return bytes;\r\n };\r\n\r\n const decodeBase64ToText = (value) => {\r\n const bytes = decodeBase64(value);\r\n return new TextDecoder('utf-8').decode(bytes);\r\n };\r\n\r\n const normalizeHref = (href) => {\r\n if (!href) return '';\r\n return href.split('#')[0];\r\n };\r\n\r\n const getSpineIndexByHref = (href) => {\r\n const normalized = normalizeHref(href);\r\n if (!normalized) return -1;\r\n return spineItems.findIndex((item) => normalizeHref(item.href) === normalized);\r\n };\r\n\r\n const buildOutline = async () => {\r\n if (!book || !book.loaded || !book.loaded.navigation) return [];\r\n const nav = await book.loaded.navigation;\r\n const toc = nav && nav.toc ? nav.toc : [];\r\n\r\n const mapItem = (item) => {\r\n const title = item.label || item.title || '';\r\n const pageIndex = getSpineIndexByHref(item.href || '');\r\n const children = Array.isArray(item.subitems) ? item.subitems.map(mapItem) : [];\r\n const outlineItem = { title, pageIndex };\r\n if (children.length > 0) outlineItem.children = children;\r\n return outlineItem;\r\n };\r\n\r\n return toc.map(mapItem);\r\n };\r\n\r\n const applyEpubZoom = () => {\r\n if (!rendition || !rendition.themes) return;\r\n const fontSize = `${Math.round(zoom * 100)}%`;\r\n if (typeof rendition.themes.fontSize === 'function') {\r\n rendition.themes.fontSize(fontSize);\r\n } else if (typeof rendition.themes.override === 'function') {\r\n rendition.themes.override('font-size', fontSize);\r\n }\r\n };\r\n\r\n const applyTextZoom = () => {\r\n if (!textContainer) return;\r\n const fontSize = Math.max(12, Math.round(DEFAULT_FONT_SIZE * zoom));\r\n textContainer.style.fontSize = `${fontSize}px`;\r\n };\r\n\r\n const renderTextPage = (pageIndex) => {\r\n const text = textPages[pageIndex] || '';\r\n if (!textContainer) {\r\n textContainer = document.createElement('div');\r\n textContainer.style.padding = '24px';\r\n textContainer.style.lineHeight = '1.6';\r\n textContainer.style.whiteSpace = 'pre-wrap';\r\n textContainer.style.fontFamily = 'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace';\r\n viewer.appendChild(textContainer);\r\n }\r\n textContainer.textContent = text;\r\n applyTextZoom();\r\n };\r\n\r\n const paginateText = (text) => {\r\n const pages = [];\r\n for (let i = 0; i < text.length; i += TEXT_PAGE_CHUNK) {\r\n pages.push(text.slice(i, i + TEXT_PAGE_CHUNK));\r\n }\r\n return pages.length > 0 ? pages : [''];\r\n };\r\n\r\n const loadText = async (source) => {\r\n let text = '';\r\n if (source.kind === 'uri') {\r\n const res = await fetch(source.uri);\r\n text = await res.text();\r\n } else if (source.kind === 'base64') {\r\n text = decodeBase64ToText(source.data);\r\n } else if (source.kind === 'text') {\r\n text = source.text || '';\r\n }\r\n\r\n clearViewer();\r\n textPages = paginateText(text);\r\n pageCount = textPages.length;\r\n currentPage = 1;\r\n textContainer = null;\r\n renderTextPage(0);\r\n return { pageCount };\r\n };\r\n\r\n const loadEpub = async (source) => {\r\n log('epub.load:start', source.kind);\r\n if (rendition && typeof rendition.destroy === 'function') {\r\n rendition.destroy();\r\n }\r\n if (book && typeof book.destroy === 'function') {\r\n book.destroy();\r\n }\r\n\r\n if (source.kind === 'base64') {\r\n book = ePub();\r\n await withTimeout(book.open(source.data, 'base64'), 15000, 'epub.open');\r\n } else {\r\n let data = null;\r\n if (source.kind === 'uri') {\r\n data = source.uri;\r\n } else if (source.kind === 'text') {\r\n const encoder = new TextEncoder();\r\n data = encoder.encode(source.text || '').buffer;\r\n }\r\n const input = data instanceof Uint8Array ? data.buffer : data;\r\n book = ePub(input, { openAs: 'epub' });\r\n }\r\n await withTimeout(book.ready, 15000, 'epub.ready');\r\n log('epub.load:ready');\r\n\r\n spineItems = book.spine && book.spine.items ? book.spine.items : [];\r\n pageCount = spineItems.length;\r\n currentPage = 1;\r\n\r\n clearViewer();\r\n rendition = book.renderTo(viewer, {\r\n width: '100%',\r\n height: '100%',\r\n flow: 'paginated',\r\n spread: 'none',\r\n });\r\n\r\n if (rendition && rendition.hooks && rendition.hooks.content) {\r\n rendition.hooks.content.register((contents) => {\r\n const frame = contents && contents.document ? contents.document.defaultView.frameElement : null;\r\n if (frame) {\r\n frame.setAttribute('sandbox', 'allow-scripts allow-same-origin');\r\n }\r\n });\r\n }\r\n\r\n if (rendition && typeof rendition.on === 'function') {\r\n rendition.on('selected', (cfiRange, contents) => {\r\n const selection = contents && contents.window ? contents.window.getSelection() : null;\r\n const text = selection ? selection.toString().trim() : '';\r\n if (text) {\r\n sendEvent('TEXT_SELECTED', { text, pageIndex: Math.max(0, currentPage - 1) });\r\n }\r\n if (rendition && rendition.annotations && typeof rendition.annotations.remove === 'function') {\r\n rendition.annotations.remove(cfiRange, 'highlight');\r\n }\r\n });\r\n }\r\n\r\n try {\r\n await withTimeout(displayEpubPage(0), 8000, 'epub.display');\r\n log('epub.load:displayed');\r\n } catch (err) {\r\n reportError(err, 'epub.display');\r\n }\r\n applyEpubZoom();\r\n\r\n const outline = await buildOutline();\r\n log('epub.load:outline', outline.length);\r\n return { pageCount, outline };\r\n };\r\n\r\n const displayEpubPage = async (pageIndex) => {\r\n if (!rendition) return;\r\n const item = spineItems[pageIndex];\r\n if (!item) return;\r\n const target = item.href || item.idref || item.cfiBase || pageIndex;\r\n await rendition.display(target);\r\n currentPage = pageIndex + 1;\r\n sendState();\r\n };\r\n\r\n const getTextContent = async (pageIndex) => {\r\n if (currentType === 'text') {\r\n const text = textPages[pageIndex] || '';\r\n return [{\r\n str: text,\r\n dir: 'ltr',\r\n width: 0,\r\n height: 0,\r\n transform: [1, 0, 0, 1, 0, 0],\r\n fontName: 'default',\r\n }];\r\n }\r\n\r\n if (currentType === 'epub') {\r\n if (!book) return [];\r\n const item = spineItems[pageIndex];\r\n if (!item) return [];\r\n try {\r\n const section = book.spine.get(item.idref || item.href);\r\n const text = section && typeof section.text === 'function' ? await section.text() : '';\r\n if (!text) return [];\r\n return [{\r\n str: text,\r\n dir: 'ltr',\r\n width: 0,\r\n height: 0,\r\n transform: [1, 0, 0, 1, 0, 0],\r\n fontName: 'default',\r\n }];\r\n } catch (err) {\r\n return [];\r\n }\r\n }\r\n\r\n return [];\r\n };\r\n\r\n const getPageText = async (pageIndex) => {\r\n const items = await getTextContent(pageIndex);\r\n return items.map((item) => item.str).join(' ');\r\n };\r\n\r\n const searchText = async (query) => {\r\n const normalized = query.toLowerCase();\r\n const results = [];\r\n\r\n for (let i = 0; i < pageCount; i += 1) {\r\n const text = await getPageText(i);\r\n if (!text) continue;\r\n const lower = text.toLowerCase();\r\n let pos = lower.indexOf(normalized, 0);\r\n let matchIndex = 0;\r\n while (pos !== -1) {\r\n const start = Math.max(0, pos - 20);\r\n const end = Math.min(text.length, pos + query.length + 20);\r\n results.push({ pageIndex: i, text: text.substring(start, end), matchIndex });\r\n matchIndex += 1;\r\n pos = lower.indexOf(normalized, pos + 1);\r\n }\r\n }\r\n\r\n return results;\r\n };\r\n\r\n const getPageDimensions = () => ({\r\n width: viewer.clientWidth || 0,\r\n height: viewer.clientHeight || 0,\r\n });\r\n\r\n const getPageIndex = (dest) => {\r\n if (!dest) return null;\r\n if (typeof dest === 'string') return getSpineIndexByHref(dest);\r\n if (typeof dest !== 'object') return null;\r\n if (dest.kind === 'href') return getSpineIndexByHref(dest.value);\r\n if (dest.kind === 'pageIndex') return dest.value;\r\n if (dest.kind === 'pageNumber') return Math.max(0, dest.value - 1);\r\n return null;\r\n };\r\n\r\n const selectText = async (pageIndex) => {\r\n const text = await getPageText(pageIndex);\r\n if (!text) return null;\r\n return {\r\n text,\r\n rects: [{ x: 0, y: 0, width: 1, height: 1 }],\r\n };\r\n };\r\n\r\n const applyZoom = () => {\r\n if (currentType === 'text') {\r\n applyTextZoom();\r\n } else if (currentType === 'epub') {\r\n applyEpubZoom();\r\n }\r\n };\r\n\r\n const handleCommand = async (message) => {\r\n const { id, kind, payload } = message;\r\n log('command', kind);\r\n\r\n try {\r\n if (kind === 'load') {\r\n currentType = payload.type;\r\n zoom = 1.0;\r\n\r\n if (currentType === 'text') {\r\n const result = await loadText(payload.source);\r\n sendState();\r\n sendResponse(id, true, result);\r\n return;\r\n }\r\n\r\n if (currentType === 'epub') {\r\n const result = await loadEpub(payload.source);\r\n sendState({ outline: result.outline || [] });\r\n sendResponse(id, true, result);\r\n return;\r\n }\r\n\r\n throw new Error('Unsupported document type');\r\n }\r\n\r\n if (kind === 'go-to-page') {\r\n const page = Math.max(1, payload.page || 1);\r\n if (currentType === 'text') {\r\n currentPage = page;\r\n renderTextPage(page - 1);\r\n sendState();\r\n } else if (currentType === 'epub') {\r\n await displayEpubPage(page - 1);\r\n }\r\n sendResponse(id, true, { currentPage });\r\n return;\r\n }\r\n\r\n if (kind === 'set-zoom') {\r\n zoom = Math.max(0.5, Math.min(4.0, payload.zoom || 1.0));\r\n applyZoom();\r\n sendState();\r\n sendResponse(id, true, { zoom });\r\n return;\r\n }\r\n\r\n if (kind === 'set-rotation') {\r\n sendResponse(id, true, {});\r\n return;\r\n }\r\n\r\n if (kind === 'get-text-content') {\r\n const items = await getTextContent(payload.pageIndex || 0);\r\n sendResponse(id, true, items);\r\n return;\r\n }\r\n\r\n if (kind === 'get-page-dimensions') {\r\n sendResponse(id, true, getPageDimensions());\r\n return;\r\n }\r\n\r\n if (kind === 'search-text') {\r\n const results = await searchText(payload.query || '');\r\n sendResponse(id, true, results);\r\n return;\r\n }\r\n\r\n if (kind === 'select-text') {\r\n const selection = await selectText(payload.pageIndex || 0);\r\n sendResponse(id, true, selection);\r\n return;\r\n }\r\n\r\n if (kind === 'get-outline') {\r\n const outline = await buildOutline();\r\n sendResponse(id, true, outline);\r\n return;\r\n }\r\n\r\n if (kind === 'get-page-index') {\r\n const index = getPageIndex(payload.dest);\r\n sendResponse(id, true, index);\r\n return;\r\n }\r\n\r\n if (kind === 'destroy') {\r\n clearViewer();\r\n sendResponse(id, true, {});\r\n return;\r\n }\r\n\r\n sendResponse(id, false, null, 'Unknown command');\r\n } catch (err) {\r\n sendResponse(id, false, null, err && err.message ? err.message : String(err));\r\n }\r\n };\r\n\r\n const onMessage = (event) => {\n let message = null;\n const raw = event && typeof event === 'object' ? event.data : null;\n\n if (raw && typeof raw === 'object' && raw.kind && raw.id) {\n message = raw;\n } else if (typeof raw === 'string') {\n if (raw.startsWith('setImmediate$')) {\n return;\n }\n const trimmed = raw.trim();\n if (!trimmed || (!trimmed.startsWith('{') && !trimmed.startsWith('['))) {\n return;\n }\n try {\n message = JSON.parse(trimmed);\n } catch (err) {\n sendEvent('RUNTIME_ERROR', {\r\n message: 'Failed to parse message',\r\n context: 'runtime.onMessage',\r\n stack: err && err.stack ? err.stack : null,\r\n preview: trimmed.slice(0, 200),\r\n });\r\n return;\r\n }\r\n } else {\n return;\n }\n\r\n if (!message || !message.kind || message.id == null) return;\r\n handleCommand(message);\r\n };\r\n\r\n window.addEventListener('message', onMessage);\r\n document.addEventListener('message', onMessage);\r\n\r\n sendMessage({ type: 'ready' });\r\n})();\r\n\r\n </script>\r\n </body>\r\n</html>\r\n\r\n","export { default as Viewer } from './components/Viewer';\nexport { default as PageRenderer } from './components/PageRenderer';\nexport { default as Topbar } from './components/Topbar';\nexport { default as ToolDock } from './components/ToolDock';\nexport { default as RightSheet } from './components/RightSheet';\nexport { default as AnnotationEditor } from './components/AnnotationEditor';\nexport { default as BottomBar } from './components/BottomBar';\nexport { default as SettingsSheet } from './components/SettingsSheet';\nexport { default as CoverPreview } from './components/CoverPreview';\n","import React, { useMemo, useRef, useEffect, useCallback } from 'react';\r\nimport { FlatList, ScrollView, StyleSheet, View, useWindowDimensions, type ViewToken } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\nimport PageRenderer from './PageRenderer';\r\nimport WebViewViewer from './WebViewViewer';\r\n\r\ninterface ViewerProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst Viewer: React.FC<ViewerProps> = ({ engine }) => {\r\n const { pageCount, currentPage, scrollToPageSignal, setDocumentState, uiTheme, viewMode } = useViewerStore();\r\n const listRef = useRef<FlatList<any>>(null);\r\n const isDark = uiTheme === 'dark';\r\n const { width: windowWidth } = useWindowDimensions();\r\n const isDouble = viewMode === 'double';\r\n const isSingle = viewMode === 'single';\r\n const renderTargetType = engine.getRenderTargetType?.() ?? 'canvas';\r\n const isWebView = renderTargetType === 'webview';\r\n\r\n const pages = useMemo(() => Array.from({ length: pageCount }).map((_, i) => i), [pageCount]);\r\n const rows = useMemo(() => {\r\n if (!isDouble) return [];\r\n const result: Array<{ left: number; right: number | null }> = [];\r\n for (let i = 0; i < pageCount; i += 2) {\r\n result.push({ left: i, right: i + 1 < pageCount ? i + 1 : null });\r\n }\r\n return result;\r\n }, [isDouble, pageCount]);\r\n\r\n useEffect(() => {\r\n if (isWebView) {\r\n if (scrollToPageSignal === null) return;\r\n if (pageCount === 0) return;\r\n if (scrollToPageSignal < 0 || scrollToPageSignal >= pageCount) return;\r\n const nextPage = scrollToPageSignal + 1;\r\n engine.goToPage(nextPage);\r\n setDocumentState({ currentPage: nextPage, scrollToPageSignal: null });\r\n return;\r\n }\r\n\r\n if (scrollToPageSignal === null) return;\r\n if (pageCount === 0) return;\r\n if (scrollToPageSignal < 0 || scrollToPageSignal >= pageCount) return;\r\n if (isSingle) {\r\n setDocumentState({ currentPage: scrollToPageSignal + 1, scrollToPageSignal: null });\r\n return;\r\n }\r\n const targetIndex = isDouble ? Math.floor(scrollToPageSignal / 2) : scrollToPageSignal;\r\n listRef.current?.scrollToIndex({ index: targetIndex, animated: true });\r\n setDocumentState({ scrollToPageSignal: null });\r\n }, [scrollToPageSignal, pageCount, setDocumentState, isDouble, isSingle, isWebView, engine]);\r\n\r\n const onViewableItemsChanged = useCallback(\r\n ({ viewableItems }: { viewableItems: Array<ViewToken> }) => {\r\n const first = viewableItems[0];\r\n if (!first) return;\r\n if (isDouble) {\r\n const item = first.item as { left: number; right: number | null } | undefined;\r\n if (!item) return;\r\n const page = item.left + 1;\r\n if (page !== currentPage) {\r\n setDocumentState({ currentPage: page });\r\n }\r\n return;\r\n }\r\n\r\n if (first.index !== null && first.index !== undefined) {\r\n const page = first.index + 1;\r\n if (page !== currentPage) {\r\n setDocumentState({ currentPage: page });\r\n }\r\n }\r\n },\r\n [currentPage, isDouble, setDocumentState]\r\n );\r\n\r\n if (isWebView) {\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <WebViewViewer engine={engine} />\r\n </View>\r\n );\r\n }\r\n\r\n if (isSingle) {\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <ScrollView\r\n contentContainerStyle={styles.singleContent}\r\n showsVerticalScrollIndicator={false}\r\n scrollEnabled\r\n >\r\n <PageRenderer engine={engine} pageIndex={Math.max(0, currentPage - 1)} spacing={32} />\r\n </ScrollView>\r\n </View>\r\n );\r\n }\r\n\r\n const columnGap = 12;\r\n const horizontalPadding = 16;\r\n const columnWidth = isDouble\r\n ? (windowWidth - horizontalPadding * 2 - columnGap) / 2\r\n : windowWidth;\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <FlatList\r\n ref={listRef}\r\n data={isDouble ? rows : pages}\r\n keyExtractor={(item) => (isDouble ? `row-${item.left}` : `page-${item}`)}\r\n contentContainerStyle={styles.listContent}\r\n renderItem={({ item }) =>\r\n isDouble ? (\r\n <View style={[styles.row, { paddingHorizontal: horizontalPadding }]}>\r\n <View style={{ width: columnWidth }}>\r\n <PageRenderer\r\n engine={engine}\r\n pageIndex={item.left}\r\n availableWidth={columnWidth}\r\n horizontalPadding={8}\r\n spacing={20}\r\n />\r\n </View>\r\n {item.right !== null ? (\r\n <View style={{ width: columnWidth }}>\r\n <PageRenderer\r\n engine={engine}\r\n pageIndex={item.right}\r\n availableWidth={columnWidth}\r\n horizontalPadding={8}\r\n spacing={20}\r\n />\r\n </View>\r\n ) : (\r\n <View style={{ width: columnWidth }} />\r\n )}\r\n </View>\r\n ) : (\r\n <PageRenderer engine={engine} pageIndex={item} spacing={28} />\r\n )\r\n }\r\n onViewableItemsChanged={onViewableItemsChanged}\r\n viewabilityConfig={{ itemVisiblePercentThreshold: 60 }}\r\n scrollEnabled\r\n onScrollToIndexFailed={({ index, averageItemLength }) => {\r\n if (index < 0 || index >= pageCount) return;\r\n const offset = Math.max(0, averageItemLength * index);\r\n listRef.current?.scrollToOffset({ offset, animated: true });\r\n }}\r\n showsVerticalScrollIndicator={false}\r\n />\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n backgroundColor: '#e9ecef',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n },\r\n listContent: {\r\n paddingTop: 18,\r\n paddingBottom: 120,\r\n },\r\n singleContent: {\r\n paddingTop: 18,\r\n paddingBottom: 140,\r\n },\r\n row: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n },\r\n});\r\n\r\nexport default Viewer;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport {\r\n View,\r\n StyleSheet,\r\n Pressable,\r\n ScrollView,\r\n PanResponder,\r\n Platform,\r\n findNodeHandle,\r\n useWindowDimensions,\r\n type LayoutChangeEvent,\r\n type GestureResponderEvent,\r\n} from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { Annotation, DocumentEngine, TextSelection } from '@papyrus-sdk/types';\r\nimport { PapyrusPageView, type PapyrusPageViewProps } from '@papyrus-sdk/engine-native';\r\n\r\ntype PageViewComponentType = React.ComponentType<PapyrusPageViewProps & React.RefAttributes<any>>;\r\n\r\ninterface PageRendererProps {\r\n engine: DocumentEngine;\r\n pageIndex: number;\r\n scale?: number;\r\n PageViewComponent?: PageViewComponentType;\r\n availableWidth?: number;\r\n horizontalPadding?: number;\r\n spacing?: number;\r\n}\r\n\r\nconst PageRenderer: React.FC<PageRendererProps> = ({\r\n engine,\r\n pageIndex,\r\n scale = 1,\r\n PageViewComponent = PapyrusPageView as PageViewComponentType,\r\n availableWidth,\r\n horizontalPadding = 16,\r\n spacing = 24,\r\n}) => {\r\n const viewRef = useRef<any>(null);\r\n const [layout, setLayout] = useState({ width: 0, height: 0 });\r\n const [pageSize, setPageSize] = useState<{ width: number; height: number } | null>(null);\r\n const { width: windowWidth } = useWindowDimensions();\r\n const isAndroid = Platform.OS === 'android';\r\n const isNative = Platform.OS === 'android' || Platform.OS === 'ios';\r\n\r\n const {\r\n zoom,\r\n rotation,\r\n pageTheme,\r\n annotations,\r\n annotationColor,\r\n addAnnotation,\r\n setDocumentState,\r\n accentColor,\r\n selectedAnnotationId,\r\n setSelectedAnnotation,\r\n removeAnnotation,\r\n searchResults,\r\n activeSearchIndex,\r\n setSelectionActive,\r\n } = useViewerStore();\r\n\r\n const pageAnnotations = useMemo(\r\n () => annotations.filter((ann) => ann.pageIndex === pageIndex),\r\n [annotations, pageIndex]\r\n );\r\n\r\n const pageSearchHits = useMemo(\r\n () =>\r\n searchResults\r\n .map((result, index) => ({ result, index }))\r\n .filter(({ result }) => result.pageIndex === pageIndex),\r\n [searchResults, pageIndex]\r\n );\r\n\r\n const [selectionRect, setSelectionRect] = useState<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const [selectionRects, setSelectionRects] = useState<Array<{ x: number; y: number; width: number; height: number }>>([]);\r\n const [selectionBounds, setSelectionBounds] = useState<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const [selectionText, setSelectionText] = useState('');\r\n const [isSelecting, setIsSelecting] = useState(false);\r\n const selectionStart = useRef<{ x: number; y: number } | null>(null);\r\n const selectionRectRef = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const selectionBoundsRef = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const selectionBoundsStart = useRef<{ x: number; y: number; width: number; height: number } | null>(null);\r\n const lastTapRef = useRef<{ time: number; x: number; y: number } | null>(null);\r\n const pinchRef = useRef<{ distance: number; zoom: number } | null>(null);\r\n\r\n useEffect(() => {\r\n if (!layout.width || !layout.height) return;\r\n const viewTag = findNodeHandle(viewRef.current);\r\n if (viewTag) {\r\n const renderScale = isNative ? scale / Math.max(zoom, 0.5) : scale;\r\n void engine.renderPage(pageIndex, viewTag, renderScale);\r\n }\r\n }, [engine, pageIndex, scale, zoom, rotation, layout.width, layout.height, isNative]);\r\n\r\n useEffect(() => {\r\n let active = true;\r\n const loadDimensions = async () => {\r\n const dims = await engine.getPageDimensions(pageIndex);\r\n if (!active) return;\r\n if (dims.width > 0 && dims.height > 0) {\r\n setPageSize({ width: dims.width, height: dims.height });\r\n }\r\n };\r\n void loadDimensions();\r\n return () => {\r\n active = false;\r\n };\r\n }, [engine, pageIndex]);\r\n\r\n const handleLayout = (event: LayoutChangeEvent) => {\r\n const { width, height } = event.nativeEvent.layout;\r\n if (width !== layout.width || height !== layout.height) {\r\n setLayout({ width, height });\r\n }\r\n };\r\n\r\n const addAnnotationAt = (x: number, y: number, width: number, height: number, type: Annotation['type']) => {\r\n addAnnotation({\r\n id: Math.random().toString(36).slice(2, 9),\r\n pageIndex,\r\n type,\r\n rect: { x, y, width, height },\r\n color: annotationColor,\r\n content: type === 'text' || type === 'comment' ? '' : undefined,\r\n createdAt: Date.now(),\r\n });\r\n };\r\n\r\n const clamp = (value: number, min: number, max: number) => Math.min(max, Math.max(min, value));\r\n\r\n const getBoundsFromRects = (rects: Array<{ x: number; y: number; width: number; height: number }>) => {\r\n let minX = 1;\r\n let minY = 1;\r\n let maxX = 0;\r\n let maxY = 0;\r\n rects.forEach((rect) => {\r\n minX = Math.min(minX, rect.x);\r\n minY = Math.min(minY, rect.y);\r\n maxX = Math.max(maxX, rect.x + rect.width);\r\n maxY = Math.max(maxY, rect.y + rect.height);\r\n });\r\n if (maxX <= minX || maxY <= minY) return null;\r\n return {\r\n x: clamp(minX, 0, 1),\r\n y: clamp(minY, 0, 1),\r\n width: clamp(maxX - minX, 0, 1),\r\n height: clamp(maxY - minY, 0, 1),\r\n };\r\n };\r\n\r\n const clearSelection = () => {\r\n setSelectionRect(null);\r\n selectionRectRef.current = null;\r\n setSelectionRects([]);\r\n setSelectionBounds(null);\r\n selectionBoundsRef.current = null;\r\n setSelectionText('');\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n selectionBoundsStart.current = null;\r\n setSelectionActive(false);\r\n };\r\n\r\n const applySelectionResult = (selection: TextSelection | null) => {\r\n if (!selection || !selection.rects || selection.rects.length === 0) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectionRects(selection.rects);\r\n setSelectionText(selection.text || '');\r\n const bounds = getBoundsFromRects(selection.rects);\r\n if (!bounds) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectionBounds(bounds);\r\n selectionBoundsRef.current = bounds;\r\n setSelectionActive(true);\r\n };\r\n\r\n const selectFromBounds = async (bounds: { x: number; y: number; width: number; height: number }) => {\r\n const selection = await engine.selectText?.(pageIndex, bounds);\r\n applySelectionResult(selection ?? null);\r\n };\r\n\r\n const selectAtPoint = async (x: number, y: number) => {\r\n if (!layout.width || !layout.height) return;\r\n const size = 26;\r\n const half = size / 2;\r\n const left = clamp(x - half, 0, Math.max(0, layout.width - size));\r\n const top = clamp(y - half, 0, Math.max(0, layout.height - size));\r\n const bounds = {\r\n x: left / layout.width,\r\n y: top / layout.height,\r\n width: size / layout.width,\r\n height: size / layout.height,\r\n };\r\n await selectFromBounds(bounds);\r\n };\r\n\r\n const getTouchDistance = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (touches.length < 2) return 0;\r\n const [a, b] = touches;\r\n return Math.hypot(b.pageX - a.pageX, b.pageY - a.pageY);\r\n };\r\n\r\n const shouldHandlePinch = (touches: Array<{ pageX: number; pageY: number }>) => isNative && touches.length === 2;\r\n\r\n const handlePinchStart = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (!shouldHandlePinch(touches)) return;\r\n pinchRef.current = { distance: getTouchDistance(touches), zoom };\r\n };\r\n\r\n const handlePinchMove = (touches: Array<{ pageX: number; pageY: number }>) => {\r\n if (!shouldHandlePinch(touches) || !pinchRef.current) return;\r\n const distance = getTouchDistance(touches);\r\n if (!distance) return;\r\n const scale = distance / pinchRef.current.distance;\r\n const nextZoom = clamp(pinchRef.current.zoom * scale, 0.5, 4.0);\r\n setDocumentState({ zoom: nextZoom });\r\n engine.setZoom(nextZoom);\r\n };\r\n\r\n const handlePinchEnd = () => {\r\n pinchRef.current = null;\r\n };\r\n\r\n const handlePress = (event: GestureResponderEvent) => {\r\n if (!layout.width || !layout.height) return;\r\n if (selectionRects.length > 0 || selectionBounds) {\r\n clearSelection();\r\n return;\r\n }\r\n setSelectedAnnotation(null);\r\n if (!isNative) return;\r\n\r\n const { locationX, locationY } = event.nativeEvent;\r\n const now = Date.now();\r\n const lastTap = lastTapRef.current;\r\n lastTapRef.current = { time: now, x: locationX, y: locationY };\r\n\r\n if (!lastTap) return;\r\n const timeDelta = now - lastTap.time;\r\n const distance = Math.hypot(locationX - lastTap.x, locationY - lastTap.y);\r\n if (timeDelta < 280 && distance < 24) {\r\n void selectAtPoint(locationX, locationY);\r\n }\r\n };\r\n\r\n const selectionEnabled = Platform.OS === 'web';\r\n void selectionText;\r\n\r\n const panResponder = useMemo(\r\n () =>\r\n PanResponder.create({\r\n onStartShouldSetPanResponder: () => selectionEnabled,\r\n onMoveShouldSetPanResponder: () => selectionEnabled,\r\n onPanResponderGrant: (event) => {\r\n if (!selectionEnabled || !layout.width || !layout.height) return;\r\n const { locationX, locationY } = event.nativeEvent;\r\n selectionStart.current = { x: locationX, y: locationY };\r\n setIsSelecting(true);\r\n const rect = { x: locationX, y: locationY, width: 0, height: 0 };\r\n selectionRectRef.current = rect;\r\n setSelectionRect(rect);\r\n },\r\n onPanResponderMove: (_, gestureState) => {\r\n if (!selectionEnabled || !selectionStart.current) return;\r\n const start = selectionStart.current;\r\n const currentX = start.x + gestureState.dx;\r\n const currentY = start.y + gestureState.dy;\r\n const left = Math.max(0, Math.min(start.x, currentX));\r\n const top = Math.max(0, Math.min(start.y, currentY));\r\n const right = Math.min(layout.width, Math.max(start.x, currentX));\r\n const bottom = Math.min(layout.height, Math.max(start.y, currentY));\r\n const rect = { x: left, y: top, width: right - left, height: bottom - top };\r\n selectionRectRef.current = rect;\r\n setSelectionRect(rect);\r\n },\r\n onPanResponderRelease: async () => {\r\n const rect = selectionRectRef.current;\r\n if (!selectionEnabled || !rect || !layout.width || !layout.height) {\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n return;\r\n }\r\n setIsSelecting(false);\r\n selectionStart.current = null;\r\n\r\n const minSize = 6;\r\n if (rect.width < minSize || rect.height < minSize) {\r\n clearSelection();\r\n return;\r\n }\r\n\r\n const normalized = {\r\n x: rect.x / layout.width,\r\n y: rect.y / layout.height,\r\n width: rect.width / layout.width,\r\n height: rect.height / layout.height,\r\n };\r\n\r\n await selectFromBounds(normalized);\r\n setSelectionRect(null);\r\n },\r\n }),\r\n [selectionEnabled, layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const selectionBoundsPx = useMemo(() => {\r\n if (!selectionBounds || !layout.width || !layout.height) return null;\r\n return {\r\n x: selectionBounds.x * layout.width,\r\n y: selectionBounds.y * layout.height,\r\n width: selectionBounds.width * layout.width,\r\n height: selectionBounds.height * layout.height,\r\n };\r\n }, [selectionBounds, layout.width, layout.height]);\r\n\r\n const createHandleResponder = (handle: 'start' | 'end') =>\r\n PanResponder.create({\r\n onStartShouldSetPanResponder: () => true,\r\n onMoveShouldSetPanResponder: () => true,\r\n onPanResponderGrant: () => {\r\n selectionBoundsStart.current = selectionBoundsRef.current;\r\n },\r\n onPanResponderMove: (_, gestureState) => {\r\n const start = selectionBoundsStart.current;\r\n if (!start || !layout.width || !layout.height) return;\r\n const dx = gestureState.dx / layout.width;\r\n const dy = gestureState.dy / layout.height;\r\n const minSize = 0.01;\r\n let next = { ...start };\r\n\r\n if (handle === 'start') {\r\n const newX = clamp(start.x + dx, 0, start.x + start.width - minSize);\r\n const newY = clamp(start.y + dy, 0, start.y + start.height - minSize);\r\n next = {\r\n x: newX,\r\n y: newY,\r\n width: start.x + start.width - newX,\r\n height: start.y + start.height - newY,\r\n };\r\n } else {\r\n const maxX = clamp(start.x + start.width + dx, start.x + minSize, 1);\r\n const maxY = clamp(start.y + start.height + dy, start.y + minSize, 1);\r\n next = {\r\n x: start.x,\r\n y: start.y,\r\n width: maxX - start.x,\r\n height: maxY - start.y,\r\n };\r\n }\r\n\r\n selectionBoundsRef.current = next;\r\n setSelectionBounds(next);\r\n },\r\n onPanResponderRelease: async () => {\r\n const next = selectionBoundsRef.current;\r\n selectionBoundsStart.current = null;\r\n if (!next) return;\r\n await selectFromBounds(next);\r\n },\r\n onPanResponderTerminate: () => {\r\n selectionBoundsStart.current = null;\r\n },\r\n });\r\n\r\n const startHandleResponder = useMemo(\r\n () => createHandleResponder('start'),\r\n [layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const endHandleResponder = useMemo(\r\n () => createHandleResponder('end'),\r\n [layout.width, layout.height, engine, pageIndex]\r\n );\r\n\r\n const applySelection = (type: 'highlight' | 'strikeout' | 'comment') => {\r\n if (selectionRects.length === 0) return;\r\n\r\n if (type === 'comment') {\r\n const first = selectionRects[0];\r\n addAnnotationAt(first.x, first.y, Math.max(0.08, first.width), Math.max(0.06, first.height), 'comment');\r\n clearSelection();\r\n return;\r\n }\r\n\r\n selectionRects.forEach((rect) => {\r\n addAnnotationAt(rect.x, rect.y, rect.width, rect.height, type);\r\n });\r\n clearSelection();\r\n };\r\n\r\n const themeOverlayStyle = useMemo(() => {\r\n switch (pageTheme) {\r\n case 'sepia':\r\n return styles.themeSepia;\r\n case 'dark':\r\n return styles.themeDark;\r\n case 'high-contrast':\r\n return styles.themeContrast;\r\n default:\r\n return styles.themeNone;\r\n }\r\n }, [pageTheme]);\r\n\r\n const aspectRatio =\r\n pageSize && pageSize.width > 0 && pageSize.height > 0 ? pageSize.width / pageSize.height : 0.77;\r\n const containerWidth = availableWidth ?? windowWidth;\r\n const baseWidth = containerWidth * 0.92;\r\n const pageWidth = isNative ? baseWidth * zoom : baseWidth;\r\n const pageHeight = pageWidth / aspectRatio;\r\n const hasActiveSelection = selectionRects.length > 0 || !!selectionBounds || isSelecting;\r\n const scrollEnabled = isNative && zoom > 1 && !hasActiveSelection;\r\n\r\n return (\r\n <ScrollView\r\n horizontal\r\n scrollEnabled={scrollEnabled}\r\n showsHorizontalScrollIndicator={false}\r\n contentContainerStyle={[styles.scrollContent, { paddingHorizontal: horizontalPadding }]}\r\n >\r\n <Pressable\r\n {...panResponder.panHandlers}\r\n style={[styles.container, { width: pageWidth, height: pageHeight, marginBottom: spacing }]}\r\n onLayout={handleLayout}\r\n onPress={handlePress}\r\n onStartShouldSetResponder={(event) => shouldHandlePinch(event.nativeEvent.touches)}\r\n onMoveShouldSetResponder={(event) => shouldHandlePinch(event.nativeEvent.touches)}\r\n onResponderGrant={(event) => handlePinchStart(event.nativeEvent.touches)}\r\n onResponderMove={(event) => handlePinchMove(event.nativeEvent.touches)}\r\n onResponderRelease={handlePinchEnd}\r\n onResponderTerminate={handlePinchEnd}\r\n >\r\n <PageViewComponent ref={viewRef} style={styles.page} />\r\n <View pointerEvents=\"none\" style={[styles.themeOverlay, themeOverlayStyle]} />\r\n <View pointerEvents=\"box-none\" style={styles.selectionLayer}>\r\n <View pointerEvents=\"none\">\r\n {selectionRects.map((rect, index) => {\r\n const style = {\r\n left: `${rect.x * 100}%`,\r\n top: `${rect.y * 100}%`,\r\n width: `${rect.width * 100}%`,\r\n height: `${rect.height * 100}%`,\r\n } as const;\r\n return <View key={`sel-${index}`} style={[styles.selectionHighlight, style]} />;\r\n })}\r\n </View>\r\n {selectionBoundsPx ? (\r\n <View\r\n pointerEvents=\"box-none\"\r\n style={[\r\n styles.selectionOutline,\r\n {\r\n left: selectionBoundsPx.x,\r\n top: selectionBoundsPx.y,\r\n width: selectionBoundsPx.width,\r\n height: selectionBoundsPx.height,\r\n borderColor: accentColor,\r\n },\r\n ]}\r\n >\r\n <View\r\n {...startHandleResponder.panHandlers}\r\n style={[styles.selectionHandle, { left: -8, top: -8, borderColor: accentColor }]}\r\n />\r\n <View\r\n {...endHandleResponder.panHandlers}\r\n style={[styles.selectionHandle, { right: -8, bottom: -8, borderColor: accentColor }]}\r\n />\r\n </View>\r\n ) : null}\r\n {isSelecting && selectionRect ? (\r\n <View\r\n pointerEvents=\"none\"\r\n style={[\r\n styles.selectionOutline,\r\n {\r\n left: selectionRect.x,\r\n top: selectionRect.y,\r\n width: selectionRect.width,\r\n height: selectionRect.height,\r\n borderColor: accentColor,\r\n },\r\n ]}\r\n />\r\n ) : null}\r\n </View>\r\n <View pointerEvents=\"none\" style={styles.searchLayer}>\r\n {pageSearchHits.map(({ result, index }) => {\r\n if (!result.rects || result.rects.length === 0) return null;\r\n return result.rects.map((rect, rectIndex) => {\r\n if (rect.width <= 0 || rect.height <= 0) return null;\r\n const isActive = index === activeSearchIndex;\r\n const highlightStyle = {\r\n left: `${rect.x * 100}%`,\r\n top: `${rect.y * 100}%`,\r\n width: `${rect.width * 100}%`,\r\n height: `${rect.height * 100}%`,\r\n } as const;\r\n return (\r\n <View\r\n key={`${index}-${rectIndex}`}\r\n style={[\r\n styles.searchHighlight,\r\n { borderColor: accentColor, backgroundColor: `${accentColor}26` },\r\n isActive && styles.searchHighlightActive,\r\n isActive && { borderColor: accentColor, backgroundColor: `${accentColor}40` },\r\n highlightStyle,\r\n ]}\r\n />\r\n );\r\n });\r\n })}\r\n </View>\r\n <View pointerEvents=\"box-none\" style={styles.annotationLayer}>\r\n {pageAnnotations.map((ann) => {\r\n const isSelected = selectedAnnotationId === ann.id;\r\n const style = {\r\n left: `${ann.rect.x * 100}%`,\r\n top: `${ann.rect.y * 100}%`,\r\n width: `${ann.rect.width * 100}%`,\r\n height: `${ann.rect.height * 100}%`,\r\n backgroundColor: ann.type === 'highlight' ? `${ann.color}66` : 'transparent',\r\n borderBottomWidth: ann.type === 'strikeout' ? 3 : 0,\r\n borderBottomColor: ann.type === 'strikeout' ? ann.color : 'transparent',\r\n } as const;\r\n\r\n return (\r\n <Pressable\r\n key={ann.id}\r\n onPress={() => setSelectedAnnotation(ann.id)}\r\n style={[\r\n styles.annotation,\r\n style,\r\n isSelected && styles.annotationSelected,\r\n isSelected && { borderColor: accentColor },\r\n ]}\r\n >\r\n {(ann.type === 'comment' || ann.type === 'text') && (\r\n <View style={[styles.annotationBadge, { borderColor: ann.color }]}>\r\n <View style={[styles.annotationDot, { backgroundColor: ann.color }]} />\r\n </View>\r\n )}\r\n {isSelected && (\r\n <Pressable onPress={() => removeAnnotation(ann.id)} style={styles.deleteButton}>\r\n <View style={styles.deleteDot} />\r\n </Pressable>\r\n )}\r\n </Pressable>\r\n );\r\n })}\r\n </View>\r\n {selectionRects.length > 0 && selectionBoundsPx ? (\r\n <View\r\n pointerEvents=\"box-none\"\r\n style={[\r\n styles.selectionToolbar,\r\n {\r\n left: selectionBoundsPx.x,\r\n top:\r\n selectionBoundsPx.y + selectionBoundsPx.height + 8 > layout.height - 56\r\n ? Math.max(8, selectionBoundsPx.y - 52)\r\n : selectionBoundsPx.y + selectionBoundsPx.height + 8,\r\n },\r\n ]}\r\n >\r\n <Pressable onPress={() => applySelection('comment')} style={styles.selectionAction}>\r\n <View style={styles.selectionActionDot} />\r\n </Pressable>\r\n <Pressable onPress={() => applySelection('highlight')} style={styles.selectionAction}>\r\n <View style={[styles.selectionSwatch, { backgroundColor: annotationColor }]} />\r\n </Pressable>\r\n <Pressable onPress={() => applySelection('strikeout')} style={[styles.selectionAction, styles.selectionActionLast]}>\r\n <View style={[styles.selectionStrike, { backgroundColor: annotationColor }]} />\r\n </Pressable>\r\n </View>\r\n ) : null}\r\n </Pressable>\r\n </ScrollView>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n scrollContent: {\r\n alignItems: 'center',\r\n },\r\n container: {\r\n alignSelf: 'center',\r\n borderRadius: 14,\r\n backgroundColor: '#ffffff',\r\n shadowColor: '#000000',\r\n shadowOpacity: 0.12,\r\n shadowRadius: 12,\r\n shadowOffset: { width: 0, height: 6 },\r\n elevation: 4,\r\n },\r\n page: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: '#ffffff',\r\n borderRadius: 14,\r\n overflow: 'hidden',\r\n },\r\n annotationLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n searchLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n selectionLayer: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n },\r\n selectionHighlight: {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(245, 158, 11, 0.28)',\r\n borderRadius: 4,\r\n },\r\n selectionOutline: {\r\n position: 'absolute',\r\n borderWidth: 2,\r\n borderStyle: 'dashed',\r\n borderColor: 'rgba(37, 99, 235, 0.9)',\r\n borderRadius: 6,\r\n },\r\n selectionHandle: {\r\n position: 'absolute',\r\n width: 16,\r\n height: 16,\r\n borderRadius: 8,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 2,\r\n borderColor: '#2563eb',\r\n },\r\n searchHighlight: {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(59, 130, 246, 0.2)',\r\n borderWidth: 1,\r\n borderColor: 'rgba(59, 130, 246, 0.35)',\r\n borderRadius: 4,\r\n },\r\n searchHighlightActive: {\r\n backgroundColor: 'rgba(59, 130, 246, 0.35)',\r\n borderColor: '#3b82f6',\r\n },\r\n themeOverlay: {\r\n ...StyleSheet.absoluteFillObject,\r\n borderRadius: 14,\r\n },\r\n themeNone: {\r\n backgroundColor: 'transparent',\r\n },\r\n themeSepia: {\r\n backgroundColor: 'rgba(244, 236, 216, 0.35)',\r\n },\r\n themeDark: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n themeContrast: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.35)',\r\n },\r\n annotation: {\r\n position: 'absolute',\r\n },\r\n annotationSelected: {\r\n borderWidth: 1,\r\n borderColor: '#3b82f6',\r\n },\r\n annotationBadge: {\r\n position: 'absolute',\r\n left: 4,\r\n top: 4,\r\n width: 14,\r\n height: 14,\r\n borderRadius: 7,\r\n borderWidth: 1,\r\n backgroundColor: '#ffffff',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n annotationDot: {\r\n width: 6,\r\n height: 6,\r\n borderRadius: 3,\r\n },\r\n deleteButton: {\r\n position: 'absolute',\r\n right: -8,\r\n top: -8,\r\n width: 20,\r\n height: 20,\r\n borderRadius: 10,\r\n backgroundColor: '#ef4444',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n deleteDot: {\r\n width: 8,\r\n height: 2,\r\n backgroundColor: '#ffffff',\r\n borderRadius: 2,\r\n },\r\n selectionToolbar: {\r\n position: 'absolute',\r\n paddingHorizontal: 10,\r\n paddingVertical: 8,\r\n borderRadius: 14,\r\n backgroundColor: '#111827',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n selectionAction: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#1f2937',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginRight: 10,\r\n },\r\n selectionActionLast: {\r\n marginRight: 0,\r\n },\r\n selectionActionDot: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: 4,\r\n backgroundColor: '#f9fafb',\r\n },\r\n selectionSwatch: {\r\n width: 14,\r\n height: 14,\r\n borderRadius: 7,\r\n borderWidth: 1,\r\n borderColor: '#ffffff',\r\n },\r\n selectionStrike: {\r\n width: 14,\r\n height: 3,\r\n borderRadius: 3,\r\n },\r\n});\r\n\r\nexport default PageRenderer;\r\n","import React, { useEffect, useMemo, useRef } from 'react';\r\nimport { Image, StyleSheet, View } from 'react-native';\r\nimport WebView, { type WebViewMessageEvent, type WebViewErrorEvent } from 'react-native-webview';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\n\r\nconst runtimeAsset = require('../runtime/index.html');\r\nconst runtimeSource = (() => {\r\n if (typeof runtimeAsset === 'string') {\r\n return { html: runtimeAsset };\r\n }\r\n if (typeof runtimeAsset === 'number') {\r\n const resolved = Image.resolveAssetSource(runtimeAsset);\r\n if (resolved?.uri) {\r\n return { uri: resolved.uri };\r\n }\r\n }\r\n if (runtimeAsset && typeof runtimeAsset === 'object' && 'uri' in runtimeAsset) {\r\n const uri = (runtimeAsset as { uri?: string }).uri;\r\n if (uri) return { uri };\r\n }\r\n return { html: '' };\r\n})();\r\n\r\ntype WebViewBridge = {\r\n postMessage: (message: string) => void;\r\n};\r\n\r\ntype WebViewBridgeEngine = DocumentEngine & {\r\n attachWebView?: (bridge: WebViewBridge) => void;\r\n handleWebViewMessage?: (data: string) => void;\r\n};\r\n\r\ninterface WebViewViewerProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst WebViewViewer: React.FC<WebViewViewerProps> = ({ engine }) => {\r\n const webViewRef = useRef<WebView>(null);\r\n const { pageTheme } = useViewerStore();\r\n\r\n useEffect(() => {\r\n const bridgeEngine = engine as WebViewBridgeEngine;\r\n bridgeEngine.attachWebView?.({\r\n postMessage: (message: string) => {\r\n if (__DEV__) {\r\n const preview = message.length > 200 ? `${message.slice(0, 200)}…` : message;\r\n console.log('[Papyrus WebView] send', preview);\r\n }\r\n webViewRef.current?.postMessage(message);\r\n },\r\n });\r\n }, [engine]);\r\n\r\n const handleMessage = (event: WebViewMessageEvent) => {\r\n const bridgeEngine = engine as WebViewBridgeEngine;\r\n if (__DEV__) {\r\n console.log('[Papyrus WebView] message', event.nativeEvent.data);\r\n }\r\n bridgeEngine.handleWebViewMessage?.(event.nativeEvent.data);\r\n };\r\n\r\n const handleLoadEnd = () => {\r\n if (__DEV__) {\r\n console.log('[Papyrus WebView] loaded');\r\n }\r\n };\r\n\r\n const handleError = (event: WebViewErrorEvent) => {\r\n if (__DEV__) {\r\n console.warn('[Papyrus WebView] error', event.nativeEvent);\r\n }\r\n };\r\n\r\n const themeOverlayStyle = useMemo(() => {\r\n switch (pageTheme) {\r\n case 'sepia':\r\n return styles.themeSepia;\r\n case 'dark':\r\n return styles.themeDark;\r\n case 'high-contrast':\r\n return styles.themeContrast;\r\n default:\r\n return styles.themeNone;\r\n }\r\n }, [pageTheme]);\r\n\r\n return (\r\n <View style={styles.container}>\r\n <WebView\r\n ref={webViewRef}\r\n source={runtimeSource}\r\n originWhitelist={['*']}\r\n onMessage={handleMessage}\r\n onLoadEnd={handleLoadEnd}\r\n onError={handleError}\r\n javaScriptEnabled\r\n domStorageEnabled\r\n allowFileAccess\r\n allowUniversalAccessFromFileURLs\r\n style={styles.webview}\r\n />\r\n <View pointerEvents=\"none\" style={[styles.themeOverlay, themeOverlayStyle]} />\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flex: 1,\r\n backgroundColor: '#ffffff',\r\n },\r\n webview: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n themeOverlay: {\r\n ...StyleSheet.absoluteFillObject,\r\n },\r\n themeNone: {\r\n backgroundColor: 'transparent',\r\n },\r\n themeSepia: {\r\n backgroundColor: 'rgba(244, 236, 216, 0.35)',\r\n },\r\n themeDark: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\r\n },\r\n themeContrast: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.35)',\r\n },\r\n});\r\n\r\nexport default WebViewViewer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { IconSettings, IconChevronLeft, IconChevronRight } from '../icons';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\n\r\ninterface TopbarProps {\r\n engine: DocumentEngine;\r\n onOpenSettings?: () => void;\r\n}\r\n\r\nconst Topbar: React.FC<TopbarProps> = ({ engine, onOpenSettings }) => {\r\n const {\r\n currentPage,\r\n pageCount,\r\n uiTheme,\r\n setDocumentState,\r\n triggerScrollToPage,\r\n accentColor,\r\n } = useViewerStore();\r\n const [pageLabel, setPageLabel] = useState(`${currentPage}`);\r\n const isDark = uiTheme === 'dark';\r\n const navIconColor = isDark ? '#e5e7eb' : '#111827';\r\n\r\n useEffect(() => {\r\n setPageLabel(`${currentPage}`);\r\n }, [currentPage]);\r\n\r\n const handlePageChange = (delta: number) => {\r\n const next = Math.max(1, Math.min(pageCount, currentPage + delta));\r\n engine.goToPage(next);\r\n setDocumentState({ currentPage: next });\r\n triggerScrollToPage(next - 1);\r\n };\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <View style={styles.leftGroup}>\r\n <View style={[styles.logoBadge, { backgroundColor: accentColor }]}>\r\n <Text style={styles.logoText}>P</Text>\r\n </View>\r\n <Text style={[styles.brandText, isDark && styles.brandTextDark]}>Papyrus</Text>\r\n </View>\r\n\r\n <View style={styles.pageGroup}>\r\n <Pressable onPress={() => handlePageChange(-1)} style={[styles.pageButton, isDark && styles.pageButtonDark]}>\r\n <IconChevronLeft size={16} color={navIconColor} />\r\n </Pressable>\r\n <Text style={[styles.pageIndicator, isDark && styles.pageIndicatorDark]}>\r\n {pageLabel}/{pageCount}\r\n </Text>\r\n <Pressable onPress={() => handlePageChange(1)} style={[styles.pageButton, isDark && styles.pageButtonDark]}>\r\n <IconChevronRight size={16} color={navIconColor} />\r\n </Pressable>\r\n </View>\r\n\r\n <View style={styles.rightGroup}>\r\n <Pressable\r\n onPress={() => onOpenSettings?.()}\r\n style={[styles.iconButton, isDark && styles.iconButtonDark]}\r\n >\r\n <IconSettings size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n paddingHorizontal: 14,\r\n paddingVertical: 8,\r\n backgroundColor: '#ffffff',\r\n borderBottomWidth: 1,\r\n borderBottomColor: '#e5e7eb',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderBottomColor: '#1f2937',\r\n },\r\n leftGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n },\r\n logoBadge: {\r\n width: 26,\r\n height: 26,\r\n borderRadius: 8,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: '#2563eb',\r\n marginRight: 8,\r\n },\r\n logoText: {\r\n color: '#ffffff',\r\n fontWeight: '800',\r\n fontSize: 13,\r\n },\r\n brandText: {\r\n fontSize: 14,\r\n fontWeight: '800',\r\n color: '#111827',\r\n },\r\n brandTextDark: {\r\n color: '#f9fafb',\r\n },\r\n pageGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flex: 1,\r\n justifyContent: 'center',\r\n },\r\n pageButton: {\r\n width: 26,\r\n height: 26,\r\n borderRadius: 10,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: '#f3f4f6',\r\n },\r\n pageButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n pageButtonText: {\r\n fontSize: 11,\r\n fontWeight: '600',\r\n color: '#111827',\r\n },\r\n pageButtonTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n pageIndicator: {\r\n fontSize: 12,\r\n color: '#374151',\r\n minWidth: 52,\r\n textAlign: 'center',\r\n marginHorizontal: 6,\r\n fontWeight: '700',\r\n },\r\n pageIndicatorDark: {\r\n color: '#d1d5db',\r\n },\r\n rightGroup: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n flex: 1,\r\n },\r\n iconButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 6,\r\n borderRadius: 10,\r\n backgroundColor: '#f3f4f6',\r\n marginLeft: 6,\r\n },\r\n iconButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n iconButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n iconButtonText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n iconButtonTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n iconButtonTextActive: {\r\n color: '#ffffff',\r\n },\r\n iconRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n iconRowSpacer: {\r\n width: 6,\r\n },\r\n});\r\n\r\nexport default Topbar;\r\n","import React from 'react';\nimport Svg, { Path } from 'react-native-svg';\n\ntype IconProps = {\n size?: number;\n color?: string;\n strokeWidth?: number;\n};\n\nconst defaultColor = '#111827';\n\nexport const IconDocument: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M10 3v4a1 1 0 0 1-1 1H5m14-4v16a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V7.914a1 1 0 0 1 .293-.707l3.914-3.914A1 1 0 0 1 9.914 3H18a1 1 0 0 1 1 1Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconGrid: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M9.143 4H4.857A.857.857 0 0 0 4 4.857v4.286c0 .473.384.857.857.857h4.286A.857.857 0 0 0 10 9.143V4.857A.857.857 0 0 0 9.143 4Zm10 0h-4.286a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286A.857.857 0 0 0 20 9.143V4.857A.857.857 0 0 0 19.143 4Zm-10 10H4.857a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286a.857.857 0 0 0 .857-.857v-4.286A.857.857 0 0 0 9.143 14Zm10 0h-4.286a.857.857 0 0 0-.857.857v4.286c0 .473.384.857.857.857h4.286a.857.857 0 0 0 .857-.857v-4.286a.857.857 0 0 0-.857-.857Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconSearch: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m21 21-3.5-3.5M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n />\n </Svg>\n);\n\nexport const IconZoomIn: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path d=\"M5 12h14m-7 7V5\" stroke={color} strokeWidth={strokeWidth} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Svg>\n);\n\nexport const IconZoomOut: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path d=\"M5 12h14\" stroke={color} strokeWidth={strokeWidth} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Svg>\n);\n\nexport const IconSettings: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M21 13v-2a1 1 0 0 0-1-1h-.757l-.707-1.707.535-.536a1 1 0 0 0 0-1.414l-1.414-1.414a1 1 0 0 0-1.414 0l-.536.535L14 4.757V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v.757l-1.707.707-.536-.535a1 1 0 0 0-1.414 0L4.929 6.343a1 1 0 0 0 0 1.414l.536.536L4.757 10H4a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1h.757l.707 1.707-.535.536a1 1 0 0 0 0 1.414l1.414 1.414a1 1 0 0 0 1.414 0l.536-.535 1.707.707V20a1 1 0 0 0 1 1h2a1 1 0 0 0 1-1v-.757l1.707-.708.536.536a1 1 0 0 0 1.414 0l1.414-1.414a1 1 0 0 0 0-1.414l-.535-.536.707-1.707H20a1 1 0 0 0 1-1Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <Path\n d=\"M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconComment: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M7.556 8.5h8m-8 3.5H12m7.111-7H4.89a.896.896 0 0 0-.629.256.868.868 0 0 0-.26.619v9.25c0 .232.094.455.26.619A.896.896 0 0 0 4.89 16H9l3 4 3-4h4.111a.896.896 0 0 0 .629-.256.868.868 0 0 0 .26-.619v-9.25a.868.868 0 0 0-.26-.619.896.896 0 0 0-.63-.256Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconCursor: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M9 20H5.5c-.27614 0-.5-.2239-.5-.5v-3c0-.2761.22386-.5.5-.5h13c.2761 0 .5.2239.5.5v3c0 .2761-.2239.5-.5.5H18m-6-1 1.42 1.8933c.04.0534.12.0534.16 0L15 19m-7-6 3.9072-9.76789c.0335-.08381.1521-.08381.1856 0L16 13m-8 0H7m1 0h1.5m6.5 0h-1.5m1.5 0h1m-7-3.00001h4\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n />\n </Svg>\n);\n\nexport const IconPalette: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M12 7h.01m3.486 1.513h.01m-6.978 0h.01M6.99 12H7m9 4h2.706a1.957 1.957 0 0 0 1.883-1.325A9 9 0 1 0 3.043 12.89 9.1 9.1 0 0 0 8.2 20.1a8.62 8.62 0 0 0 3.769.9 2.013 2.013 0 0 0 2.03-2v-.857A2.036 2.036 0 0 1 16 16Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconTrash: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M5 7h14m-9 3v8m4-8v8M10 3h4a1 1 0 0 1 1 1v3H9V4a1 1 0 0 1 1-1ZM6 7h12v13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V7Z\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconLink: React.FC<IconProps> = ({ size = 20, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"M13.213 9.787a3.391 3.391 0 0 0-4.795 0l-3.425 3.426a3.39 3.39 0 0 0 4.795 4.794l.321-.304m-.321-4.49a3.39 3.39 0 0 0 4.795 0l3.424-3.426a3.39 3.39 0 0 0-4.794-4.795l-1.028.961\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconEdit: React.FC<{ size?: number; color?: string }> = ({ size = 18, color = defaultColor }) => (\n <Svg width={size} height={size} viewBox=\"0 0 16 16\" fill=\"none\">\n <Path\n d=\"M5 1a2 2 0 0 0-2 2v9.998a2 2 0 0 0 2 2h1.046l.25-1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h3v2.5A1.5 1.5 0 0 0 9.498 6h2.5v1.44a2.535 2.535 0 0 1 1-.405V5.413a1.5 1.5 0 0 0-.44-1.06L9.645 1.439A1.5 1.5 0 0 0 8.585 1H5Zm6.791 4H9.5a.5.5 0 0 1-.5-.5V2.206l2.792 2.792Zm1.207 3.06a1.56 1.56 0 0 0-.662.394L8.05 12.74a2.777 2.777 0 0 0-.722 1.257l-.009.033l-.302 1.211a.61.61 0 0 0 .738.74l1.211-.303a2.776 2.776 0 0 0 1.29-.73l4.288-4.288a1.56 1.56 0 0 0-1.545-2.6Z\"\n fill={color}\n />\n </Svg>\n);\n\nexport const IconChevronRight: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m9 5 7 7-7 7\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconChevronLeft: React.FC<IconProps> = ({ size = 18, color = defaultColor, strokeWidth = 2 }) => (\n <Svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <Path\n d=\"m15 19-7-7 7-7\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Svg>\n);\n\nexport const IconHand: React.FC<{ size?: number; color?: string }> = ({ size = 20, color = '#111827' }) => (\n <Svg width={size} height={size} viewBox=\"0 0 56 56\" fill=\"none\">\n <Path\n d=\"M25.129 53.512c8.25 0 14.039-4.477 17.156-13.266l4.125-11.602c1.031-2.93.094-5.343-2.344-6.234c-2.18-.797-4.336.14-5.367 2.555l-1.523 3.75c-.047.094-.117.164-.211.164c-.117 0-.164-.094-.164-.211V9.871c0-2.742-1.711-4.453-4.336-4.453c-.961 0-1.828.328-2.485.938c-.304-2.391-1.851-3.868-4.171-3.868c-2.274 0-3.868 1.524-4.22 3.82c-.585-.585-1.429-.89-2.273-.89c-2.437 0-4.054 1.688-4.054 4.29v2.6c-.633-.656-1.57-1.007-2.578-1.007c-2.438 0-4.125 1.804-4.125 4.43v20.132c0 10.969 6.656 17.649 16.57 17.649m-.117-3.258c-8.297 0-13.36-5.32-13.36-14.766v-19.43c0-.984.633-1.687 1.618-1.687c.96 0 1.664.703 1.664 1.688v11.976c0 .867.703 1.453 1.453 1.453c.797 0 1.523-.586 1.523-1.453V10.13c0-1.008.633-1.688 1.594-1.688c.984 0 1.664.68 1.664 1.688v16.71c0 .868.703 1.454 1.477 1.454c.796 0 1.523-.586 1.523-1.453V7.223c0-.985.656-1.711 1.64-1.711c.938 0 1.618.726 1.618 1.71V26.84c0 .82.656 1.453 1.476 1.453c.797 0 1.5-.633 1.5-1.453V10.129c0-1.008.68-1.688 1.641-1.688c.984 0 1.64.68 1.64 1.688V33.19c0 1.078.68 1.852 1.665 1.852c.843 0 1.547-.375 2.086-1.547l3.187-7.125c.422-1.008 1.266-1.523 2.133-1.195c.937.375 1.266 1.265.82 2.484l-4.148 11.578c-2.86 7.993-7.875 11.016-14.414 11.016\"\n fill={color}\n />\n </Svg>\n);\n","import React from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\n\r\nconst COLOR_SWATCHES = [\r\n '#fbbf24',\r\n '#f97316',\r\n '#ef4444',\r\n '#10b981',\r\n '#22d3ee',\r\n '#3b82f6',\r\n '#8b5cf6',\r\n '#ec4899',\r\n '#f3f4f6',\r\n '#111827',\r\n];\r\n\r\nconst ToolDock: React.FC = () => {\r\n const { selectionActive, uiTheme, locale, annotationColor, setAnnotationColor, accentColor } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const isVisible = selectionActive;\r\n const t = getStrings(locale);\r\n\r\n if (!isVisible) return null;\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <Text style={[styles.title, isDark && styles.titleDark]}>{t.highlight}</Text>\r\n <View style={styles.paletteRow}>\r\n {COLOR_SWATCHES.map((color) => {\r\n const isSelected = annotationColor === color;\r\n return (\r\n <Pressable\r\n key={color}\r\n onPress={() => setAnnotationColor(color)}\r\n style={[\r\n styles.swatch,\r\n { backgroundColor: color },\r\n isSelected && styles.swatchSelected,\r\n isSelected && { borderColor: accentColor },\r\n ]}\r\n />\r\n );\r\n })}\r\n </View>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n position: 'absolute',\r\n left: 16,\r\n right: 16,\r\n bottom: 72,\r\n paddingVertical: 10,\r\n paddingHorizontal: 12,\r\n borderRadius: 16,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n shadowColor: '#000000',\r\n shadowOpacity: 0.15,\r\n shadowRadius: 14,\r\n shadowOffset: { width: 0, height: 6 },\r\n elevation: 6,\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderColor: '#1f2937',\r\n },\r\n title: {\r\n fontSize: 11,\r\n fontWeight: '800',\r\n color: '#111827',\r\n marginBottom: 8,\r\n },\r\n titleDark: {\r\n color: '#e5e7eb',\r\n },\r\n paletteRow: {\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n },\r\n swatch: {\r\n width: 20,\r\n height: 20,\r\n borderRadius: 10,\r\n marginRight: 8,\r\n marginBottom: 8,\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n swatchSelected: {\r\n borderColor: '#2563eb',\r\n borderWidth: 2,\r\n },\r\n});\r\n\r\nexport default ToolDock;\r\n","import { Locale } from '@papyrus-sdk/types';\r\n\r\ntype Strings = {\r\n pages: string;\r\n search: string;\r\n notes: string;\r\n read: string;\r\n edit: string;\r\n done: string;\r\n page: string;\r\n summary: string;\r\n pagesTab: string;\r\n summaryTab: string;\r\n searchPlaceholder: string;\r\n searchGo: string;\r\n results: string;\r\n searching: string;\r\n noResults: string;\r\n noSummary: string;\r\n noAnnotations: string;\r\n untitled: string;\r\n pageTransition: string;\r\n continuous: string;\r\n pageByPage: string;\r\n layout: string;\r\n singlePage: string;\r\n doublePage: string;\r\n rotate: string;\r\n clockwise: string;\r\n counterclockwise: string;\r\n zoom: string;\r\n highlight: string;\r\n strike: string;\r\n text: string;\r\n note: string;\r\n editNote: string;\r\n notePlaceholder: string;\r\n cancel: string;\r\n save: string;\r\n language: string;\r\n english: string;\r\n portuguese: string;\r\n appearance: string;\r\n light: string;\r\n dark: string;\r\n pageTheme: string;\r\n themeOriginal: string;\r\n themeSepia: string;\r\n themeDark: string;\r\n themeContrast: string;\r\n};\r\n\r\nconst STRINGS: Record<Locale, Strings> = {\r\n en: {\r\n pages: 'Pages',\r\n search: 'Search',\r\n notes: 'Notes',\r\n read: 'Read',\r\n edit: 'Edit',\r\n done: 'Done',\r\n page: 'Page',\r\n summary: 'Summary',\r\n pagesTab: 'Pages',\r\n summaryTab: 'Summary',\r\n searchPlaceholder: 'Search text...',\r\n searchGo: 'Go',\r\n results: 'results',\r\n searching: 'Searching...',\r\n noResults: 'No results yet.',\r\n noSummary: 'No summary available.',\r\n noAnnotations: 'No annotations yet.',\r\n untitled: 'Untitled',\r\n pageTransition: 'Page transition',\r\n continuous: 'Continuous',\r\n pageByPage: 'Page by page',\r\n layout: 'Layout',\r\n singlePage: 'Single page',\r\n doublePage: 'Double page',\r\n rotate: 'Rotate',\r\n clockwise: 'Clockwise',\r\n counterclockwise: 'Counterclockwise',\r\n zoom: 'Zoom',\r\n highlight: 'Highlight',\r\n strike: 'Strike',\r\n text: 'Text',\r\n note: 'Note',\r\n editNote: 'Edit note',\r\n notePlaceholder: 'Write your note...',\r\n cancel: 'Cancel',\r\n save: 'Save',\r\n language: 'Language',\r\n english: 'English',\r\n portuguese: 'Portuguese (BR)',\r\n appearance: 'Appearance',\r\n light: 'Light',\r\n dark: 'Dark',\r\n pageTheme: 'Page theme',\r\n themeOriginal: 'Original',\r\n themeSepia: 'Sepia',\r\n themeDark: 'Dark',\r\n themeContrast: 'High contrast',\r\n },\r\n 'pt-BR': {\r\n pages: 'Paginas',\r\n search: 'Buscar',\r\n notes: 'Notas',\r\n read: 'Ler',\r\n edit: 'Editar',\r\n done: 'Concluir',\r\n page: 'Pagina',\r\n summary: 'Sumario',\r\n pagesTab: 'Paginas',\r\n summaryTab: 'Sumario',\r\n searchPlaceholder: 'Pesquisar texto...',\r\n searchGo: 'Buscar',\r\n results: 'resultados',\r\n searching: 'Pesquisando...',\r\n noResults: 'Nenhum resultado.',\r\n noSummary: 'Sem sumario.',\r\n noAnnotations: 'Sem anotacoes.',\r\n untitled: 'Sem titulo',\r\n pageTransition: 'Transicao de pagina',\r\n continuous: 'Continuo',\r\n pageByPage: 'Pagina por pagina',\r\n layout: 'Layout',\r\n singlePage: 'Pagina unica',\r\n doublePage: 'Pagina dupla',\r\n rotate: 'Girar',\r\n clockwise: 'Sentido horario',\r\n counterclockwise: 'Sentido anti-horario',\r\n zoom: 'Zoom',\r\n highlight: 'Marca texto',\r\n strike: 'Risco',\r\n text: 'Texto',\r\n note: 'Nota',\r\n editNote: 'Editar nota',\r\n notePlaceholder: 'Escreva sua nota...',\r\n cancel: 'Cancelar',\r\n save: 'Salvar',\r\n language: 'Idioma',\r\n english: 'Ingles',\r\n portuguese: 'Portugues (BR)',\r\n appearance: 'Aparencia',\r\n light: 'Claro',\r\n dark: 'Escuro',\r\n pageTheme: 'Tema da pagina',\r\n themeOriginal: 'Original',\r\n themeSepia: 'Sepia',\r\n themeDark: 'Escuro',\r\n themeContrast: 'Contraste',\r\n },\r\n};\r\n\r\nexport const getStrings = (locale: Locale | undefined) => STRINGS[locale ?? 'en'] ?? STRINGS.en;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\r\nimport {\r\n Modal,\r\n View,\r\n Text,\r\n Pressable,\r\n TextInput,\r\n StyleSheet,\r\n ScrollView,\r\n ActivityIndicator,\n FlatList,\n Dimensions,\n Platform,\n UIManager,\n findNodeHandle,\n type LayoutChangeEvent,\n} from 'react-native';\nimport { useViewerStore, SearchService } from '@papyrus-sdk/core';\r\nimport { DocumentEngine, OutlineItem } from '@papyrus-sdk/types';\r\nimport { PapyrusPageView } from '@papyrus-sdk/engine-native';\r\nimport { getStrings } from '../strings';\r\nimport { IconChevronLeft, IconChevronRight } from '../icons';\r\n\r\ninterface RightSheetProps {\r\n engine: DocumentEngine;\r\n}\r\n\r\nconst withAlpha = (hex: string, alpha: number) => {\r\n const normalized = hex.replace('#', '').trim();\r\n const value =\r\n normalized.length === 3\r\n ? normalized\r\n .split('')\r\n .map((c) => c + c)\r\n .join('')\r\n : normalized;\r\n if (value.length !== 6) return hex;\r\n const r = parseInt(value.slice(0, 2), 16);\r\n const g = parseInt(value.slice(2, 4), 16);\r\n const b = parseInt(value.slice(4, 6), 16);\r\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\r\n};\r\n\r\nconst PageThumbnail: React.FC<{\r\n engine: DocumentEngine;\r\n pageIndex: number;\r\n isActive: boolean;\r\n isDark: boolean;\r\n zoom: number;\r\n cardWidth: number;\r\n frameWidth: number;\n frameHeight: number;\n accentColor: string;\n useNativePreview: boolean;\n onPress: () => void;\n}> = ({\n engine,\n pageIndex,\n isActive,\n isDark,\n zoom,\n cardWidth,\n frameWidth,\n frameHeight,\n accentColor,\n useNativePreview,\n onPress,\n}) => {\n const viewRef = useRef<any>(null);\n const [layoutReady, setLayoutReady] = useState(false);\n\n useEffect(() => {\n if (!layoutReady || !useNativePreview) return;\n const viewTag = findNodeHandle(viewRef.current);\n if (!viewTag) return;\n const isNative = Platform.OS === 'android' || Platform.OS === 'ios';\n const renderScale = isNative ? 2.0 / Math.max(zoom, 0.5) : 2.0;\n void engine.renderPage(pageIndex, viewTag, renderScale);\n }, [engine, pageIndex, layoutReady, useNativePreview, zoom]);\n\r\n const handleLayout = (event: LayoutChangeEvent) => {\r\n if (event.nativeEvent.layout.width && event.nativeEvent.layout.height) {\r\n setLayoutReady(true);\r\n }\r\n };\r\n\r\n return (\r\n <Pressable\r\n onPress={onPress}\r\n style={[\r\n styles.thumbCard,\r\n { width: cardWidth },\r\n isDark && styles.thumbCardDark,\r\n isActive && styles.thumbCardActive,\r\n isActive && { borderColor: accentColor },\r\n ]}\n >\n <View onLayout={handleLayout} style={[styles.thumbFrame, { width: frameWidth, height: frameHeight }]}>\n {useNativePreview ? (\n <PapyrusPageView ref={viewRef} style={styles.thumbView} />\n ) : (\n <View style={[styles.thumbFallback, isDark && styles.thumbFallbackDark]}>\n <Text style={[styles.thumbFallbackText, isDark && styles.thumbFallbackTextDark]}>\n {pageIndex + 1}\n </Text>\n </View>\n )}\n </View>\n <Text style={[styles.thumbLabel, isDark && styles.thumbLabelDark]}>{pageIndex + 1}</Text>\n </Pressable>\n );\n};\n\r\nconst OutlineNode: React.FC<{\r\n item: OutlineItem;\r\n depth?: number;\r\n isDark: boolean;\r\n onSelect: (pageIndex: number) => void;\r\n untitledLabel: string;\r\n}> = ({ item, depth = 0, isDark, onSelect, untitledLabel }) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isClickable = item.pageIndex >= 0;\r\n\r\n return (\r\n <View>\r\n <Pressable\r\n onPress={() => {\r\n if (isClickable) onSelect(item.pageIndex);\r\n }}\r\n style={[styles.outlineRow, { paddingLeft: 12 + depth * 12 }]}\r\n >\r\n <Text\r\n style={[\r\n styles.outlineText,\r\n isDark && styles.outlineTextDark,\r\n !isClickable && styles.outlineTextMuted,\r\n ]}\r\n numberOfLines={2}\r\n >\r\n {item.title || untitledLabel}\r\n </Text>\r\n </Pressable>\r\n {hasChildren &&\r\n item.children!.map((child, index) => (\r\n <OutlineNode\r\n key={`${child.title}-${index}`}\r\n item={child}\r\n depth={depth + 1}\r\n isDark={isDark}\r\n onSelect={onSelect}\r\n untitledLabel={untitledLabel}\r\n />\r\n ))}\r\n </View>\r\n );\r\n};\r\n\r\nconst RightSheet: React.FC<RightSheetProps> = ({ engine }) => {\r\n const {\r\n sidebarRightOpen,\r\n sidebarRightTab,\r\n toggleSidebarRight,\r\n outline,\r\n searchResults,\r\n searchQuery,\r\n activeSearchIndex,\r\n nextSearchResult,\r\n prevSearchResult,\r\n annotations,\r\n uiTheme,\r\n setSearch,\r\n setDocumentState,\r\n triggerScrollToPage,\r\n setSelectedAnnotation,\r\n pageCount,\r\n currentPage,\r\n zoom,\r\n locale,\r\n accentColor,\r\n } = useViewerStore();\r\n const [pagesMode, setPagesMode] = useState<'thumbnails' | 'summary'>('thumbnails');\r\n const [query, setQuery] = useState('');\r\n const [isSearching, setIsSearching] = useState(false);\r\n const searchService = useMemo(() => new SearchService(engine), [engine]);\r\n const isDark = uiTheme === 'dark';\r\n const accentSoft = withAlpha(accentColor, 0.2);\r\n const accentStrong = withAlpha(accentColor, 0.35);\r\n const t = getStrings(locale);\n const sheetHeight = Math.min(640, Dimensions.get('window').height * 0.72);\n const windowWidth = Dimensions.get('window').width;\n const gridGutter = 12;\n const gridPadding = 16;\n const cardWidth = (windowWidth - gridPadding * 2 - gridGutter) / 2;\n const frameWidth = cardWidth - 16;\n const frameHeight = frameWidth * 1.28;\n const renderTarget = engine.getRenderTargetType?.();\n const hasNativePageView = Boolean(UIManager.getViewManagerConfig?.('PapyrusPageView'));\n const useNativePreview = renderTarget !== 'webview' && hasNativePageView;\n\r\n const closeSheet = () => toggleSidebarRight();\r\n\r\n const handleSearch = async () => {\r\n const trimmed = query.trim();\r\n if (!trimmed) {\r\n setSearch('', []);\r\n return;\r\n }\r\n setIsSearching(true);\r\n try {\r\n const results = await searchService.search(trimmed);\r\n setSearch(trimmed, results);\r\n } finally {\r\n setIsSearching(false);\r\n }\r\n };\r\n\r\n const pages = useMemo(() => Array.from({ length: pageCount }, (_, i) => i), [pageCount]);\r\n\r\n const renderHighlightedSnippet = (text: string, isActive: boolean) => {\r\n const trimmedQuery = searchQuery.trim();\r\n if (trimmedQuery.length < 2) {\r\n return (\r\n <Text\r\n style={[\r\n styles.resultText,\r\n isDark && styles.resultTextDark,\r\n isActive && styles.resultTextActive,\r\n isActive && { color: accentColor },\r\n ]}\r\n >\r\n ...{text}...\r\n </Text>\r\n );\r\n }\r\n\r\n const lowerText = text.toLowerCase();\r\n const lowerQuery = trimmedQuery.toLowerCase();\r\n const parts: Array<{ text: string; match: boolean }> = [];\r\n let cursor = 0;\r\n\r\n while (cursor < text.length) {\r\n const index = lowerText.indexOf(lowerQuery, cursor);\r\n if (index === -1) {\r\n parts.push({ text: text.slice(cursor), match: false });\r\n break;\r\n }\r\n if (index > cursor) {\r\n parts.push({ text: text.slice(cursor, index), match: false });\r\n }\r\n parts.push({ text: text.slice(index, index + trimmedQuery.length), match: true });\r\n cursor = index + trimmedQuery.length;\r\n }\r\n\r\n return (\r\n <Text\r\n style={[\r\n styles.resultText,\r\n isDark && styles.resultTextDark,\r\n isActive && styles.resultTextActive,\r\n isActive && { color: accentColor },\r\n ]}\r\n >\r\n {parts.map((part, idx) => (\r\n <Text\r\n key={`${idx}-${part.text}`}\r\n style={[\r\n part.match && styles.matchText,\r\n part.match && isDark && styles.matchTextDark,\r\n part.match && isActive && styles.matchTextActive,\r\n part.match && isActive && { backgroundColor: accentStrong, color: accentColor },\r\n ]}\r\n >\r\n {part.text}\r\n </Text>\r\n ))}\r\n </Text>\r\n );\r\n };\r\n\r\n if (!sidebarRightOpen) return null;\r\n\r\n return (\r\n <Modal visible transparent animationType=\"slide\" onRequestClose={closeSheet}>\r\n <View style={styles.modalRoot}>\r\n <Pressable style={styles.backdrop} onPress={closeSheet} />\r\n <View style={[styles.sheet, { height: sheetHeight }, isDark && styles.sheetDark]}>\r\n <View style={[styles.handle, isDark && styles.handleDark]} />\r\n <View style={styles.tabs}>\r\n {['pages', 'search', 'annotations'].map((tab) => (\r\n <Pressable\r\n key={tab}\r\n onPress={() => toggleSidebarRight(tab as 'pages' | 'search' | 'annotations')}\r\n style={[\r\n styles.tabButton,\r\n isDark && styles.tabButtonDark,\r\n sidebarRightTab === tab && styles.tabButtonActive,\r\n sidebarRightTab === tab && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.tabText,\r\n isDark && styles.tabTextDark,\r\n sidebarRightTab === tab && styles.tabTextActive,\r\n ]}\r\n >\r\n {tab === 'pages' ? t.pages : tab === 'search' ? t.search : t.notes}\r\n </Text>\r\n </Pressable>\r\n ))}\r\n </View>\r\n\r\n {sidebarRightTab === 'pages' ? (\r\n <View style={styles.pagesContent}>\r\n <View style={styles.pageHeader}>\r\n <Text style={[styles.pageStatus, isDark && styles.pageStatusDark]}>\r\n {t.page} {currentPage} / {pageCount}\r\n </Text>\r\n <View style={[styles.segmented, isDark && styles.segmentedDark]}>\r\n <Pressable\r\n onPress={() => setPagesMode('thumbnails')}\r\n style={[\r\n styles.segmentButton,\r\n pagesMode === 'thumbnails' && styles.segmentButtonActive,\r\n pagesMode === 'thumbnails' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.segmentText,\r\n isDark && styles.segmentTextDark,\r\n pagesMode === 'thumbnails' && styles.segmentTextActive,\r\n ]}\r\n >\r\n {t.pagesTab}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setPagesMode('summary')}\r\n style={[\r\n styles.segmentButton,\r\n pagesMode === 'summary' && styles.segmentButtonActive,\r\n pagesMode === 'summary' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.segmentText,\r\n isDark && styles.segmentTextDark,\r\n pagesMode === 'summary' && styles.segmentTextActive,\r\n ]}\r\n >\r\n {t.summaryTab}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n {pagesMode === 'thumbnails' ? (\r\n <FlatList\r\n data={pages}\r\n keyExtractor={(item) => `thumb-${item}`}\r\n numColumns={2}\r\n contentContainerStyle={styles.thumbGrid}\r\n columnWrapperStyle={styles.thumbRow}\r\n showsVerticalScrollIndicator={false}\r\n initialNumToRender={6}\r\n renderItem={({ item }) => (\r\n <PageThumbnail\r\n engine={engine}\r\n pageIndex={item}\r\n isActive={item + 1 === currentPage}\r\n isDark={isDark}\r\n zoom={zoom}\n cardWidth={cardWidth}\n frameWidth={frameWidth}\n frameHeight={frameHeight}\n accentColor={accentColor}\n useNativePreview={useNativePreview}\n onPress={() => {\n engine.goToPage(item + 1);\n setDocumentState({ currentPage: item + 1 });\n triggerScrollToPage(item);\n closeSheet();\r\n }}\r\n />\r\n )}\r\n />\r\n ) : (\r\n <ScrollView contentContainerStyle={styles.summaryContent} showsVerticalScrollIndicator={false}>\r\n {outline.length === 0 ? (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noSummary}\r\n </Text>\r\n ) : (\r\n outline.map((item, index) => (\r\n <OutlineNode\r\n key={`${item.title}-${index}`}\r\n item={item}\r\n isDark={isDark}\r\n untitledLabel={t.untitled}\r\n onSelect={(pageIndex) => {\r\n engine.goToPage(pageIndex + 1);\r\n setDocumentState({ currentPage: pageIndex + 1 });\r\n triggerScrollToPage(pageIndex);\r\n closeSheet();\r\n }}\r\n />\r\n ))\r\n )}\r\n </ScrollView>\r\n )}\r\n </View>\r\n ) : (\r\n <ScrollView contentContainerStyle={styles.content} showsVerticalScrollIndicator={false}>\r\n {sidebarRightTab === 'search' ? (\r\n <View>\r\n <View style={[styles.searchBox, isDark && styles.searchBoxDark]}>\r\n <TextInput\r\n value={query}\r\n onChangeText={setQuery}\r\n placeholder={t.searchPlaceholder}\r\n placeholderTextColor={isDark ? '#9ca3af' : '#6b7280'}\r\n style={[styles.searchInput, isDark && styles.searchInputDark]}\r\n onSubmitEditing={handleSearch}\r\n returnKeyType=\"search\"\r\n />\r\n <Pressable onPress={handleSearch} style={[styles.searchButton, { backgroundColor: accentColor }]}>\r\n <Text style={styles.searchButtonText}>{t.searchGo}</Text>\r\n </Pressable>\r\n </View>\r\n\r\n <View style={styles.searchMeta}>\r\n <Text style={[styles.searchCount, isDark && styles.searchCountDark, { color: accentColor }]}>\r\n {searchResults.length} {t.results}\r\n </Text>\r\n <View style={styles.searchNav}>\r\n <Pressable\r\n onPress={prevSearchResult}\r\n disabled={searchResults.length === 0}\r\n style={[\r\n styles.searchNavButton,\r\n isDark && styles.searchNavButtonDark,\r\n searchResults.length === 0 && styles.searchNavButtonDisabled,\r\n ]}\r\n >\r\n <IconChevronLeft size={14} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n <Pressable\r\n onPress={nextSearchResult}\r\n disabled={searchResults.length === 0}\r\n style={[\r\n styles.searchNavButton,\r\n isDark && styles.searchNavButtonDark,\r\n searchResults.length === 0 && styles.searchNavButtonDisabled,\r\n ]}\r\n >\r\n <IconChevronRight size={14} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n {isSearching && (\r\n <View style={styles.searchStatus}>\r\n <ActivityIndicator size=\"small\" color={accentColor} />\r\n <Text style={[styles.searchStatusText, isDark && styles.searchStatusTextDark]}>\r\n {t.searching}\r\n </Text>\r\n </View>\r\n )}\r\n\r\n {!isSearching && searchResults.length === 0 && (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noResults}\r\n </Text>\r\n )}\r\n\r\n {!isSearching &&\r\n searchResults.map((res, idx) => {\r\n const isActive = idx === activeSearchIndex;\r\n return (\r\n <Pressable\r\n key={`${res.pageIndex}-${idx}`}\r\n onPress={() => {\r\n setDocumentState({ activeSearchIndex: idx });\r\n triggerScrollToPage(res.pageIndex);\r\n closeSheet();\r\n }}\r\n style={[\r\n styles.resultCard,\r\n isDark && styles.resultCardDark,\r\n isActive && styles.resultCardActive,\r\n isActive && { borderColor: accentColor },\r\n ]}\r\n >\r\n <Text style={[styles.resultPage, isDark && styles.resultPageDark, { color: accentColor }]}>\r\n {t.page} {res.pageIndex + 1}\r\n </Text>\r\n {renderHighlightedSnippet(res.text, isActive)}\r\n </Pressable>\r\n );\r\n })}\r\n </View>\r\n ) : (\r\n <View>\r\n {annotations.length === 0 ? (\r\n <Text style={[styles.emptyText, isDark && styles.emptyTextDark]}>\r\n {t.noAnnotations}\r\n </Text>\r\n ) : (\r\n annotations.map((ann) => (\r\n <Pressable\r\n key={ann.id}\r\n onPress={() => {\r\n setSelectedAnnotation(ann.id);\r\n triggerScrollToPage(ann.pageIndex);\r\n closeSheet();\r\n }}\r\n style={[styles.noteCard, isDark && styles.noteCardDark]}\r\n >\r\n <View style={styles.noteHeader}>\r\n <View style={[styles.noteDot, { backgroundColor: ann.color }]} />\r\n <Text style={[styles.noteTitle, isDark && styles.noteTitleDark]}>\r\n {t.page} {ann.pageIndex + 1}\r\n </Text>\r\n </View>\r\n <Text style={[styles.noteType, isDark && styles.noteTypeDark, { color: accentColor }]}>\r\n {ann.type === 'comment' || ann.type === 'text' ? t.note.toUpperCase() : ann.type.toUpperCase()}\r\n </Text>\r\n {ann.content ? (\r\n <Text style={[styles.noteContent, isDark && styles.noteContentDark]}>\r\n {ann.content}\r\n </Text>\r\n ) : null}\r\n </Pressable>\r\n ))\r\n )}\r\n </View>\r\n )}\r\n </ScrollView>\r\n )}\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalRoot: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n backdrop: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\r\n },\r\n sheet: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n backgroundColor: '#ffffff',\r\n borderTopLeftRadius: 20,\r\n borderTopRightRadius: 20,\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n paddingBottom: 16,\r\n },\r\n sheetDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n handle: {\r\n width: 44,\r\n height: 4,\r\n borderRadius: 999,\r\n backgroundColor: '#cbd5f5',\r\n alignSelf: 'center',\r\n marginTop: 10,\r\n marginBottom: 12,\r\n },\r\n handleDark: {\r\n backgroundColor: '#374151',\r\n },\r\n tabs: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n paddingHorizontal: 16,\r\n marginBottom: 10,\r\n },\r\n tabButton: {\r\n paddingVertical: 6,\r\n paddingHorizontal: 14,\r\n borderRadius: 999,\r\n marginRight: 8,\r\n backgroundColor: '#e5e7eb',\r\n },\r\n tabButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n tabButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n tabText: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n tabTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n tabTextActive: {\r\n color: '#ffffff',\r\n },\r\n pagesContent: {\r\n paddingHorizontal: 16,\r\n flex: 1,\r\n },\r\n pageHeader: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n marginBottom: 10,\r\n },\r\n pageStatus: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n pageStatusDark: {\r\n color: '#e5e7eb',\r\n },\r\n segmented: {\r\n flexDirection: 'row',\r\n backgroundColor: '#e5e7eb',\r\n borderRadius: 999,\r\n padding: 2,\r\n },\r\n segmentedDark: {\r\n backgroundColor: '#111827',\r\n },\r\n segmentButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 5,\r\n borderRadius: 999,\r\n },\r\n segmentButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n segmentText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n segmentTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n segmentTextActive: {\r\n color: '#ffffff',\r\n },\r\n thumbGrid: {\r\n paddingHorizontal: 16,\r\n paddingBottom: 16,\r\n },\r\n thumbRow: {\r\n justifyContent: 'space-between',\r\n marginBottom: 12,\r\n },\r\n thumbCard: {\r\n padding: 8,\r\n borderRadius: 14,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n alignItems: 'center',\r\n },\r\n thumbCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n thumbCardActive: {\r\n borderColor: '#2563eb',\r\n },\r\n thumbFrame: {\r\n borderRadius: 10,\r\n backgroundColor: '#ffffff',\r\n overflow: 'hidden',\r\n },\r\n thumbView: {\n width: '100%',\n height: '100%',\n },\n thumbFallback: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#ffffff',\n },\n thumbFallbackDark: {\n backgroundColor: '#0b0f14',\n },\n thumbFallbackText: {\n fontSize: 18,\n fontWeight: '800',\n color: '#1f2937',\n },\n thumbFallbackTextDark: {\n color: '#e5e7eb',\n },\n thumbLabel: {\r\n marginTop: 6,\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n thumbLabelDark: {\r\n color: '#e5e7eb',\r\n },\r\n content: {\r\n paddingHorizontal: 16,\r\n paddingBottom: 16,\r\n },\r\n summaryContent: {\r\n paddingBottom: 24,\r\n },\r\n outlineRow: {\r\n paddingVertical: 8,\r\n borderBottomWidth: 1,\r\n borderBottomColor: 'rgba(148, 163, 184, 0.18)',\r\n },\r\n outlineText: {\r\n fontSize: 12,\r\n fontWeight: '600',\r\n color: '#111827',\r\n },\r\n outlineTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n outlineTextMuted: {\r\n color: '#9ca3af',\r\n },\r\n searchBox: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n borderRadius: 10,\r\n backgroundColor: '#f3f4f6',\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n searchBoxDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n searchInput: {\r\n flex: 1,\r\n fontSize: 12,\r\n color: '#111827',\r\n },\r\n searchInputDark: {\r\n color: '#e5e7eb',\r\n },\r\n searchButton: {\r\n paddingHorizontal: 10,\r\n paddingVertical: 4,\r\n borderRadius: 6,\r\n backgroundColor: '#2563eb',\r\n },\r\n searchButtonText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#ffffff',\r\n },\r\n searchStatus: {\r\n marginTop: 12,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n searchStatusText: {\r\n marginLeft: 8,\r\n fontSize: 11,\r\n color: '#4b5563',\r\n },\r\n searchStatusTextDark: {\r\n color: '#9ca3af',\r\n },\r\n searchMeta: {\r\n marginTop: 12,\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n searchCount: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#2563eb',\r\n },\r\n searchCountDark: {\r\n color: '#60a5fa',\r\n },\r\n searchNav: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n searchNavButton: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#e5e7eb',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginLeft: 6,\r\n },\r\n searchNavButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n searchNavButtonDisabled: {\r\n opacity: 0.5,\r\n },\r\n emptyText: {\r\n marginTop: 16,\r\n fontSize: 12,\r\n color: '#6b7280',\r\n },\r\n emptyTextDark: {\r\n color: '#9ca3af',\r\n },\r\n resultCard: {\r\n marginTop: 12,\r\n padding: 12,\r\n borderRadius: 12,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n resultCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n resultCardActive: {\r\n borderColor: '#2563eb',\r\n },\r\n resultPage: {\r\n fontSize: 10,\r\n fontWeight: '800',\r\n color: '#2563eb',\r\n marginBottom: 6,\r\n },\r\n resultPageDark: {\r\n color: '#60a5fa',\r\n },\r\n resultText: {\r\n fontSize: 11,\r\n color: '#374151',\r\n },\r\n resultTextDark: {\r\n color: '#d1d5db',\r\n },\r\n resultTextActive: {\r\n color: '#1d4ed8',\r\n },\r\n matchText: {\r\n backgroundColor: 'rgba(245, 158, 11, 0.3)',\r\n color: '#111827',\r\n fontWeight: '700',\r\n },\r\n matchTextDark: {\r\n backgroundColor: 'rgba(245, 158, 11, 0.25)',\r\n color: '#fde68a',\r\n },\r\n matchTextActive: {\r\n backgroundColor: 'rgba(59, 130, 246, 0.35)',\r\n color: '#1d4ed8',\r\n },\r\n noteCard: {\r\n padding: 12,\r\n borderRadius: 12,\r\n backgroundColor: '#f9fafb',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n marginBottom: 12,\r\n },\r\n noteCardDark: {\r\n backgroundColor: '#111827',\r\n borderColor: '#1f2937',\r\n },\r\n noteHeader: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginBottom: 6,\r\n },\r\n noteDot: {\r\n width: 8,\r\n height: 8,\r\n borderRadius: 4,\r\n marginRight: 6,\r\n },\r\n noteTitle: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n noteTitleDark: {\r\n color: '#e5e7eb',\r\n },\r\n noteType: {\r\n fontSize: 10,\r\n fontWeight: '800',\r\n color: '#2563eb',\r\n },\r\n noteTypeDark: {\r\n color: '#60a5fa',\r\n },\r\n noteContent: {\r\n marginTop: 6,\r\n fontSize: 11,\r\n color: '#4b5563',\r\n },\r\n noteContentDark: {\r\n color: '#9ca3af',\r\n },\r\n});\r\n\r\nexport default RightSheet;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Modal, View, Text, TextInput, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\n\r\nconst AnnotationEditor: React.FC = () => {\r\n const { annotations, selectedAnnotationId, updateAnnotation, setSelectedAnnotation, uiTheme, locale, accentColor } =\r\n useViewerStore();\r\n const annotation = annotations.find((ann) => ann.id === selectedAnnotationId);\r\n const isEditable = annotation && (annotation.type === 'text' || annotation.type === 'comment');\r\n const [draft, setDraft] = useState('');\r\n const isDark = uiTheme === 'dark';\r\n const t = getStrings(locale);\r\n\r\n useEffect(() => {\r\n if (isEditable) {\r\n setDraft(annotation?.content ?? '');\r\n }\r\n }, [annotation?.id, isEditable]);\r\n\r\n if (!isEditable || !annotation) return null;\r\n\r\n const handleClose = () => setSelectedAnnotation(null);\r\n const handleSave = () => {\r\n updateAnnotation(annotation.id, { content: draft });\r\n setSelectedAnnotation(null);\r\n };\r\n\r\n return (\r\n <Modal visible transparent animationType=\"fade\" onRequestClose={handleClose}>\r\n <View style={styles.overlay}>\r\n <View style={[styles.card, isDark && styles.cardDark]}>\r\n <Text style={[styles.title, isDark && styles.titleDark]}>{t.editNote}</Text>\r\n <TextInput\r\n style={[styles.input, isDark && styles.inputDark]}\r\n value={draft}\r\n onChangeText={setDraft}\r\n placeholder={t.notePlaceholder}\r\n placeholderTextColor={isDark ? '#9ca3af' : '#6b7280'}\r\n multiline\r\n />\r\n <View style={styles.actions}>\r\n <Pressable onPress={handleClose} style={[styles.actionButton, styles.actionCancel]}>\r\n <Text style={styles.actionText}>{t.cancel}</Text>\r\n </Pressable>\r\n <Pressable onPress={handleSave} style={[styles.actionButton, styles.actionSave, { backgroundColor: accentColor }]}>\r\n <Text style={[styles.actionText, styles.actionTextLight]}>{t.save}</Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n overlay: {\r\n flex: 1,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\r\n padding: 24,\r\n },\r\n card: {\r\n width: '100%',\r\n borderRadius: 16,\r\n padding: 16,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 1,\r\n borderColor: '#e5e7eb',\r\n },\r\n cardDark: {\r\n backgroundColor: '#0f1115',\r\n borderColor: '#1f2937',\r\n },\r\n title: {\r\n fontSize: 14,\r\n fontWeight: '700',\r\n color: '#111827',\r\n marginBottom: 12,\r\n },\r\n titleDark: {\r\n color: '#f9fafb',\r\n },\r\n input: {\r\n minHeight: 100,\r\n borderRadius: 12,\r\n padding: 12,\r\n backgroundColor: '#f3f4f6',\r\n color: '#111827',\r\n fontSize: 12,\r\n },\r\n inputDark: {\r\n backgroundColor: '#111827',\r\n color: '#e5e7eb',\r\n },\r\n actions: {\r\n marginTop: 16,\r\n flexDirection: 'row',\r\n justifyContent: 'flex-end',\r\n },\r\n actionButton: {\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderRadius: 8,\r\n marginLeft: 8,\r\n },\r\n actionCancel: {\r\n backgroundColor: '#e5e7eb',\r\n },\r\n actionSave: {\r\n backgroundColor: '#2563eb',\r\n },\r\n actionText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n actionTextLight: {\r\n color: '#ffffff',\r\n },\r\n});\r\n\r\nexport default AnnotationEditor;\r\n","import React from 'react';\r\nimport { View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { getStrings } from '../strings';\r\nimport { IconDocument, IconGrid, IconSearch, IconComment } from '../icons';\r\n\r\nconst BottomBar: React.FC = () => {\r\n const { sidebarRightOpen, sidebarRightTab, toggleSidebarRight, setDocumentState, uiTheme, locale, accentColor } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const t = getStrings(locale);\r\n\r\n const isActive = (tab: 'pages' | 'search' | 'annotations') =>\r\n sidebarRightOpen && sidebarRightTab === tab;\r\n\r\n const iconColor = (active: boolean) => {\r\n if (active) return '#ffffff';\r\n return isDark ? '#e5e7eb' : '#111827';\r\n };\r\n\r\n return (\r\n <View style={[styles.container, isDark && styles.containerDark]}>\r\n <Pressable\r\n onPress={() => toggleSidebarRight('pages')}\r\n style={[styles.item, isActive('pages') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('pages') && styles.itemIconActive,\r\n isActive('pages') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconGrid size={16} color={iconColor(isActive('pages'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('pages') && styles.itemLabelActive,\r\n isActive('pages') && { color: accentColor },\r\n ]}\r\n >\r\n {t.pages}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => toggleSidebarRight('search')}\r\n style={[styles.item, isActive('search') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('search') && styles.itemIconActive,\r\n isActive('search') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconSearch size={16} color={iconColor(isActive('search'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('search') && styles.itemLabelActive,\r\n isActive('search') && { color: accentColor },\r\n ]}\r\n >\r\n {t.search}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => setDocumentState({ sidebarRightOpen: false })}\r\n style={[styles.item, !sidebarRightOpen && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n !sidebarRightOpen && styles.itemIconActive,\r\n !sidebarRightOpen && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconDocument size={16} color={iconColor(!sidebarRightOpen)} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n !sidebarRightOpen && styles.itemLabelActive,\r\n !sidebarRightOpen && { color: accentColor },\r\n ]}\r\n >\r\n {t.read}\r\n </Text>\r\n </Pressable>\r\n\r\n <Pressable\r\n onPress={() => toggleSidebarRight('annotations')}\r\n style={[styles.item, isActive('annotations') && styles.itemActive]}\r\n >\r\n <View\r\n style={[\r\n styles.itemIcon,\r\n isDark && styles.itemIconDark,\r\n isActive('annotations') && styles.itemIconActive,\r\n isActive('annotations') && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <IconComment size={16} color={iconColor(isActive('annotations'))} />\r\n </View>\r\n <Text\r\n style={[\r\n styles.itemLabel,\r\n isDark && styles.itemLabelDark,\r\n isActive('annotations') && styles.itemLabelActive,\r\n isActive('annotations') && { color: accentColor },\r\n ]}\r\n >\r\n {t.notes}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n container: {\r\n flexDirection: 'row',\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n paddingVertical: 10,\r\n paddingHorizontal: 12,\r\n backgroundColor: '#ffffff',\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n },\r\n containerDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n item: {\r\n alignItems: 'center',\r\n paddingHorizontal: 6,\r\n },\r\n itemActive: {\r\n transform: [{ translateY: -2 }],\r\n },\r\n itemIcon: {\r\n width: 28,\r\n height: 28,\r\n borderRadius: 10,\r\n backgroundColor: '#e5e7eb',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginBottom: 4,\r\n },\r\n itemIconDark: {\r\n backgroundColor: '#111827',\r\n color: '#e5e7eb',\r\n },\r\n itemIconActive: {\r\n backgroundColor: '#2563eb',\r\n color: '#ffffff',\r\n },\r\n itemLabel: {\r\n fontSize: 10,\r\n fontWeight: '700',\r\n color: '#6b7280',\r\n },\r\n itemLabelDark: {\r\n color: '#9ca3af',\r\n },\r\n itemLabelActive: {\r\n color: '#2563eb',\r\n },\r\n});\r\n\r\nexport default BottomBar;\r\n","import React from 'react';\r\nimport { Modal, View, Text, Pressable, StyleSheet } from 'react-native';\r\nimport { useViewerStore } from '@papyrus-sdk/core';\r\nimport { DocumentEngine } from '@papyrus-sdk/types';\r\nimport { getStrings } from '../strings';\r\nimport { IconZoomIn, IconZoomOut } from '../icons';\r\n\r\ninterface SettingsSheetProps {\r\n engine: DocumentEngine;\r\n visible: boolean;\r\n onClose: () => void;\r\n}\r\n\r\nconst SettingsSheet: React.FC<SettingsSheetProps> = ({ engine, visible, onClose }) => {\r\n const { viewMode, uiTheme, zoom, setDocumentState, locale, accentColor, pageTheme } = useViewerStore();\r\n const isDark = uiTheme === 'dark';\r\n const isPaged = viewMode === 'single';\r\n const isDouble = viewMode === 'double';\r\n const t = getStrings(locale);\r\n\r\n const handleTransition = (mode: 'continuous' | 'paged') => {\r\n if (mode === 'paged') {\r\n setDocumentState({ viewMode: 'single' });\r\n return;\r\n }\r\n setDocumentState({ viewMode: isDouble ? 'double' : 'continuous' });\r\n };\r\n\r\n const handleLayout = (layout: 'single' | 'double') => {\r\n if (layout === 'double') {\r\n setDocumentState({ viewMode: 'double' });\r\n return;\r\n }\r\n if (viewMode === 'double') {\r\n setDocumentState({ viewMode: 'continuous' });\r\n }\r\n };\r\n\r\n const handleRotate = (direction: 'clockwise' | 'counterclockwise') => {\r\n engine.rotate(direction);\r\n setDocumentState({ rotation: engine.getRotation() });\r\n };\r\n\r\n const handleZoom = (delta: number) => {\r\n const next = Math.max(0.5, Math.min(4, zoom + delta));\r\n engine.setZoom(next);\r\n setDocumentState({ zoom: next });\r\n };\r\n\r\n if (!visible) return null;\r\n\r\n return (\r\n <Modal visible transparent animationType=\"slide\" onRequestClose={onClose}>\r\n <View style={styles.modalRoot}>\r\n <Pressable style={styles.backdrop} onPress={onClose} />\r\n <View style={[styles.sheet, isDark && styles.sheetDark]}>\r\n <View style={[styles.handle, isDark && styles.handleDark]} />\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.appearance}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ uiTheme: 'light' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n uiTheme === 'light' && styles.optionButtonActive,\r\n uiTheme === 'light' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n uiTheme === 'light' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.light}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ uiTheme: 'dark' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n uiTheme === 'dark' && styles.optionButtonActive,\r\n uiTheme === 'dark' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n uiTheme === 'dark' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.dark}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.pageTheme}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'normal' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'normal' && styles.optionButtonActive,\r\n pageTheme === 'normal' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'normal' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeOriginal}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'sepia' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'sepia' && styles.optionButtonActive,\r\n pageTheme === 'sepia' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'sepia' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeSepia}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'dark' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'dark' && styles.optionButtonActive,\r\n pageTheme === 'dark' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'dark' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeDark}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ pageTheme: 'high-contrast' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n pageTheme === 'high-contrast' && styles.optionButtonActive,\r\n pageTheme === 'high-contrast' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n pageTheme === 'high-contrast' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.themeContrast}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.pageTransition}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleTransition('continuous')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n (!isPaged || isDouble) && styles.optionButtonActive,\r\n (!isPaged || isDouble) && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n (!isPaged || isDouble) && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.continuous}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleTransition('paged')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n isPaged && styles.optionButtonActive,\r\n isPaged && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n isPaged && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.pageByPage}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.layout}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleLayout('single')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n !isDouble && styles.optionButtonActive,\r\n !isDouble && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n !isDouble && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.singlePage}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleLayout('double')}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n isDouble && styles.optionButtonActive,\r\n isDouble && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n isDouble && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.doublePage}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.rotate}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => handleRotate('counterclockwise')}\r\n style={[styles.optionButton, isDark && styles.optionButtonDark]}\r\n >\r\n <Text style={[styles.optionText, isDark && styles.optionTextDark]}>{t.counterclockwise}</Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => handleRotate('clockwise')}\r\n style={[styles.optionButton, isDark && styles.optionButtonDark]}\r\n >\r\n <Text style={[styles.optionText, isDark && styles.optionTextDark]}>{t.clockwise}</Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.zoom}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable onPress={() => handleZoom(-0.1)} style={[styles.optionButton, isDark && styles.optionButtonDark]}>\r\n <IconZoomOut size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n <View style={styles.zoomValue}>\r\n <Text style={[styles.zoomText, isDark && styles.zoomTextDark]}>\r\n {Math.round(zoom * 100)}%\r\n </Text>\r\n </View>\r\n <Pressable onPress={() => handleZoom(0.1)} style={[styles.optionButton, isDark && styles.optionButtonDark]}>\r\n <IconZoomIn size={16} color={isDark ? '#e5e7eb' : '#111827'} />\r\n </Pressable>\r\n </View>\r\n </View>\r\n\r\n <View style={styles.section}>\r\n <Text style={[styles.sectionTitle, isDark && styles.sectionTitleDark]}>{t.language}</Text>\r\n <View style={styles.optionRow}>\r\n <Pressable\r\n onPress={() => setDocumentState({ locale: 'en' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n locale === 'en' && styles.optionButtonActive,\r\n locale === 'en' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n locale === 'en' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.english}\r\n </Text>\r\n </Pressable>\r\n <Pressable\r\n onPress={() => setDocumentState({ locale: 'pt-BR' })}\r\n style={[\r\n styles.optionButton,\r\n isDark && styles.optionButtonDark,\r\n locale === 'pt-BR' && styles.optionButtonActive,\r\n locale === 'pt-BR' && { backgroundColor: accentColor },\r\n ]}\r\n >\r\n <Text\r\n style={[\r\n styles.optionText,\r\n isDark && styles.optionTextDark,\r\n locale === 'pt-BR' && styles.optionTextActive,\r\n ]}\r\n >\r\n {t.portuguese}\r\n </Text>\r\n </Pressable>\r\n </View>\r\n </View>\r\n </View>\r\n </View>\r\n </Modal>\r\n );\r\n};\r\n\r\nconst styles = StyleSheet.create({\r\n modalRoot: {\r\n flex: 1,\r\n backgroundColor: 'transparent',\r\n },\r\n backdrop: {\r\n ...StyleSheet.absoluteFillObject,\r\n backgroundColor: 'rgba(0, 0, 0, 0.45)',\r\n },\r\n sheet: {\r\n position: 'absolute',\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n paddingHorizontal: 18,\r\n paddingBottom: 24,\r\n backgroundColor: '#ffffff',\r\n borderTopLeftRadius: 24,\r\n borderTopRightRadius: 24,\r\n borderTopWidth: 1,\r\n borderTopColor: '#e5e7eb',\r\n },\r\n sheetDark: {\r\n backgroundColor: '#0f1115',\r\n borderTopColor: '#1f2937',\r\n },\r\n handle: {\r\n width: 44,\r\n height: 4,\r\n borderRadius: 999,\r\n backgroundColor: '#cbd5f5',\r\n alignSelf: 'center',\r\n marginTop: 10,\r\n marginBottom: 12,\r\n },\r\n handleDark: {\r\n backgroundColor: '#374151',\r\n },\r\n section: {\r\n marginBottom: 16,\r\n },\r\n sectionTitle: {\r\n fontSize: 12,\r\n fontWeight: '800',\r\n color: '#111827',\r\n marginBottom: 8,\r\n },\r\n sectionTitleDark: {\r\n color: '#e5e7eb',\r\n },\r\n optionRow: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n },\r\n optionButton: {\r\n paddingHorizontal: 12,\r\n paddingVertical: 8,\r\n borderRadius: 12,\r\n backgroundColor: '#e5e7eb',\r\n marginRight: 8,\r\n marginBottom: 8,\r\n },\r\n optionButtonDark: {\r\n backgroundColor: '#111827',\r\n },\r\n optionButtonActive: {\r\n backgroundColor: '#2563eb',\r\n },\r\n optionText: {\r\n fontSize: 11,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n optionTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n optionTextActive: {\r\n color: '#ffffff',\r\n },\r\n zoomValue: {\r\n minWidth: 52,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n zoomText: {\r\n fontSize: 12,\r\n fontWeight: '700',\r\n color: '#111827',\r\n },\r\n zoomTextDark: {\r\n color: '#e5e7eb',\r\n },\r\n});\r\n\r\nexport default SettingsSheet;\r\n","import React, { useEffect, useMemo, useRef, useState } from 'react';\nimport {\n ActivityIndicator,\n StyleSheet,\n Text,\n UIManager,\n View,\n findNodeHandle,\n type LayoutChangeEvent,\n type StyleProp,\n type ViewStyle,\n} from 'react-native';\nimport { DocumentSource, DocumentType } from '@papyrus-sdk/types';\nimport { MobileDocumentEngine, PapyrusPageView } from '@papyrus-sdk/engine-native';\nimport WebViewViewer from './WebViewViewer';\n\ntype CoverPreviewProps = {\n source: DocumentSource;\n type?: DocumentType;\n pageIndex?: number;\n visible?: boolean;\n keepAlive?: boolean;\n allowInteraction?: boolean;\n renderScale?: number;\n showLoading?: boolean;\n loadingIndicator?: React.ReactNode;\n placeholder?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n onLoadStart?: () => void;\n onLoadEnd?: () => void;\n onError?: (error: Error) => void;\n};\n\nconst parseDataUri = (value: string): { mime: string } | null => {\n const match = /^data:([^;,]+)?(;base64)?,/.exec(value);\n if (!match) return null;\n return { mime: match[1] ?? '' };\n};\n\nconst inferDocumentType = (source: DocumentSource, explicitType?: DocumentType): DocumentType => {\n if (explicitType) return explicitType;\n if (typeof source === 'string') {\n const dataUri = parseDataUri(source);\n if (dataUri?.mime) {\n const mime = dataUri.mime.toLowerCase();\n if (mime.includes('epub')) return 'epub';\n if (mime.includes('text')) return 'text';\n if (mime.includes('pdf')) return 'pdf';\n }\n const clean = source.split('?')[0].split('#')[0];\n const ext = clean.includes('.') ? clean.split('.').pop()?.toLowerCase() : undefined;\n if (ext === 'epub') return 'epub';\n if (ext === 'txt') return 'text';\n if (ext === 'pdf') return 'pdf';\n return 'pdf';\n }\n if (typeof source === 'object' && source !== null && 'uri' in source) {\n const clean = source.uri.split('?')[0].split('#')[0];\n const ext = clean.includes('.') ? clean.split('.').pop()?.toLowerCase() : undefined;\n if (ext === 'epub') return 'epub';\n if (ext === 'txt') return 'text';\n if (ext === 'pdf') return 'pdf';\n }\n return 'pdf';\n};\n\nconst CoverPreview: React.FC<CoverPreviewProps> = ({\n source,\n type,\n pageIndex = 0,\n visible = true,\n keepAlive = false,\n allowInteraction = false,\n renderScale = 2,\n showLoading = true,\n loadingIndicator,\n placeholder,\n style,\n onLoadStart,\n onLoadEnd,\n onError,\n}) => {\n const [engine, setEngine] = useState<MobileDocumentEngine | null>(null);\n const [layoutReady, setLayoutReady] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const viewRef = useRef<any>(null);\n\n const resolvedType = useMemo(() => inferDocumentType(source, type), [source, type]);\n const isPdf = resolvedType === 'pdf';\n const hasNativePageView = Boolean(UIManager.getViewManagerConfig?.('PapyrusPageView'));\n const canRender = !isPdf || hasNativePageView;\n const shouldRender = Boolean(visible);\n\n useEffect(() => {\n if (!shouldRender) {\n if (!keepAlive) {\n setEngine(null);\n setLoaded(false);\n setError(null);\n }\n return;\n }\n if (!engine && canRender) {\n setEngine(new MobileDocumentEngine());\n }\n }, [shouldRender, keepAlive, engine, canRender]);\n\n useEffect(() => {\n if (!engine || !shouldRender || !canRender) return;\n let active = true;\n setLoading(true);\n setLoaded(false);\n setError(null);\n onLoadStart?.();\n const loadInput = type ? { type, source } : source;\n engine\n .load(loadInput)\n .then(() => {\n if (!active) return;\n if (!isPdf && pageIndex > 0) {\n engine.goToPage(pageIndex + 1);\n }\n setLoaded(true);\n setLoading(false);\n onLoadEnd?.();\n })\n .catch((err) => {\n if (!active) return;\n const errorValue = err instanceof Error ? err : new Error('[Papyrus] Failed to load document');\n setError(errorValue);\n setLoading(false);\n onError?.(errorValue);\n });\n return () => {\n active = false;\n };\n }, [engine, shouldRender, canRender, source, type, pageIndex, isPdf, onLoadStart, onLoadEnd, onError]);\n\n useEffect(() => {\n if (!engine || !isPdf || !loaded || !layoutReady || !shouldRender || !canRender) return;\n const viewTag = findNodeHandle(viewRef.current);\n if (!viewTag) return;\n engine.renderPage(pageIndex, viewTag, renderScale);\n }, [engine, isPdf, loaded, layoutReady, shouldRender, canRender, pageIndex, renderScale]);\n\n useEffect(() => {\n return () => {\n engine?.destroy();\n };\n }, [engine]);\n\n const handleLayout = (event: LayoutChangeEvent) => {\n const { width, height } = event.nativeEvent.layout;\n if (width > 0 && height > 0) {\n setLayoutReady(true);\n }\n };\n\n if (!shouldRender || !canRender) {\n return (\n <View style={[styles.container, style]}>\n {placeholder ?? (\n <View style={styles.placeholder}>\n <Text style={styles.placeholderText}>Preview</Text>\n </View>\n )}\n </View>\n );\n }\n\n return (\n <View style={[styles.container, style]} onLayout={handleLayout}>\n <View style={styles.previewFrame} pointerEvents={allowInteraction ? 'auto' : 'none'}>\n {isPdf ? (\n <PapyrusPageView ref={viewRef} style={styles.pageView} />\n ) : (\n engine && <WebViewViewer engine={engine} />\n )}\n </View>\n {showLoading && loading && (\n <View pointerEvents=\"none\" style={styles.loadingOverlay}>\n {loadingIndicator ?? <ActivityIndicator size=\"small\" color=\"#2563eb\" />}\n </View>\n )}\n {error && (\n <View pointerEvents=\"none\" style={styles.errorOverlay}>\n <Text style={styles.errorText}>Preview unavailable</Text>\n </View>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n backgroundColor: '#f8fafc',\n borderRadius: 12,\n overflow: 'hidden',\n },\n previewFrame: {\n flex: 1,\n backgroundColor: '#ffffff',\n },\n pageView: {\n width: '100%',\n height: '100%',\n backgroundColor: 'transparent',\n },\n loadingOverlay: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(15, 23, 42, 0.15)',\n },\n errorOverlay: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(15, 23, 42, 0.4)',\n },\n errorText: {\n fontSize: 12,\n fontWeight: '600',\n color: '#f8fafc',\n },\n placeholder: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#e2e8f0',\n },\n placeholderText: {\n fontSize: 12,\n fontWeight: '600',\n color: '#475569',\n },\n});\n\nexport default CoverPreview;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,uBAAAA,UAAAC,SAAA;AAAA,IAAAA,QAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":["exports","module","import_react","import_react_native","import_core","scale","import_react","import_react_native","import_core","import_jsx_runtime","styles","WebView","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_jsx_runtime","Svg","Svg","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_engine_native","import_jsx_runtime","styles","import_react","import_react_native","import_core","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react_native","import_core","import_jsx_runtime","styles","import_react","import_react_native","import_engine_native","import_jsx_runtime","styles"]}
|