antosdk-apps/libjpeg/build/debug/main.js
2020-12-28 17:12:36 +00:00

18 lines
52 KiB
JavaScript

(function(){}).call(this);var e,t=function(){function t(){this._src=null,this._parser=new e.JpegImage,this.onload=null}return t.prototype={get src(){return this._src},set src(e){this.load(e)},get width(){return this._parser.width},get height(){return this._parser.height},load:function(e){this._src=e,
/**
* @license
* Copyright 2015 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function(e,t){if(0!==e.indexOf("data:")){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){t(r.response)},r.send(null)}else{for(var n=e.indexOf("base64,")+7,i=atob(e.substring(n)),a=new Uint8Array(i.length),s=i.length-1;s>=0;s--)a[s]=i.charCodeAt(s);t(a.buffer)}}(e,function(e){this.parse(new Uint8Array(e)),this.onload&&this.onload()}.bind(this))},parse:function(e){this._parser.parse(e)},getData:function(e,t){return this._parser.getData(e,t,!1)},copyToImageData:function(e){if(2===this._parser.numComponents||this._parser.numComponents>4)throw new Error("Unsupported amount of components");var t,r,n=e.width,i=e.height,a=n*i*4,s=e.data;if(1!==this._parser.numComponents){var o=this._parser.getData(n,i,!0);for(t=0,r=0;t<a;)s[t++]=o[r++],s[t++]=o[r++],s[t++]=o[r++],s[t++]=255}else{var c=this._parser.getData(n,i,!1);for(t=0,r=0;t<a;){var l=c[r++];s[t++]=l,s[t++]=l,s[t++]=l,s[t++]=255}}}},t}();"function"==typeof exports&&(module.exports={JpegImage:t,JpegDecoder:r,JpxDecoder:n,Jbig2Decoder:i}),function(e){"use strict";var t=function(){var e=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);function t(){}function r(e,t){for(var r,n,i=0,a=[],s=16;s>0&&!e[s-1];)s--;a.push({children:[],index:0});var o,c=a[0];for(r=0;r<s;r++){for(n=0;n<e[r];n++){for((c=a.pop()).children[c.index]=t[i];c.index>0;)c=a.pop();for(c.index++,a.push(c);a.length<=r;)a.push(o={children:[],index:0}),c.children[c.index]=o.children,c=o;i++}r+1<s&&(a.push(o={children:[],index:0}),c.children[c.index]=o.children,c=o)}return a[0].children}function n(e,t,r){return 64*((e.blocksPerLine+1)*t+r)}function i(t,r,i,a,s,o,c,l,h){i.precision,i.samplesPerLine,i.scanLines;var f=i.mcusPerLine,u=i.progressive,p=(i.maxH,i.maxV,r),m=0,d=0;function v(){if(d>0)return d--,m>>d&1;if(255===(m=t[r++])){var e=t[r++];if(e)throw"unexpected marker: "+(m<<8|e).toString(16)}return d=7,m>>>7}function g(e){for(var t=e;;){if("number"==typeof(t=t[v()]))return t;if("object"!=typeof t)throw"invalid huffman sequence"}}function b(e){for(var t=0;e>0;)t=t<<1|v(),e--;return t}function y(e){if(1===e)return 1===v()?1:-1;var t=b(e);return t>=1<<e-1?t:t+(-1<<e)+1}var x,w=0,C=0;function P(e,t,r,i,a){var s=r%f;t(e,n(e,(r/f|0)*e.v+i,s*e.h+a))}function k(e,t,r){t(e,n(e,r/e.blocksPerLine|0,r%e.blocksPerLine))}var I,M,S,T,A,D,L=a.length;D=u?0===o?0===l?function(e,t){var r=g(e.huffmanTableDC),n=0===r?0:y(r)<<h;e.blockData[t]=e.pred+=n}:function(e,t){e.blockData[t]|=v()<<h}:0===l?function(t,r){if(w>0)w--;else for(var n=o,i=c;n<=i;){var a=g(t.huffmanTableAC),s=15&a,l=a>>4;if(0!==s){var f=e[n+=l];t.blockData[r+f]=y(s)*(1<<h),n++}else{if(l<15){w=b(l)+(1<<l)-1;break}n+=16}}}:function(t,r){for(var n,i,a=o,s=c,l=0;a<=s;){var f=e[a];switch(C){case 0:if(l=(i=g(t.huffmanTableAC))>>4,0==(n=15&i))l<15?(w=b(l)+(1<<l),C=4):(l=16,C=1);else{if(1!==n)throw"invalid ACn encoding";x=y(n),C=l?2:3}continue;case 1:case 2:t.blockData[r+f]?t.blockData[r+f]+=v()<<h:0==--l&&(C=2===C?3:0);break;case 3:t.blockData[r+f]?t.blockData[r+f]+=v()<<h:(t.blockData[r+f]=x<<h,C=0);break;case 4:t.blockData[r+f]&&(t.blockData[r+f]+=v()<<h)}a++}4===C&&0==--w&&(C=0)}:function(t,r){var n=g(t.huffmanTableDC),i=0===n?0:y(n);t.blockData[r]=t.pred+=i;for(var a=1;a<64;){var s=g(t.huffmanTableAC),o=15&s,c=s>>4;if(0!==o){var l=e[a+=c];t.blockData[r+l]=y(o),a++}else{if(c<15)break;a+=16}}};var z,O,F,B,q=0;for(O=1===L?a[0].blocksPerLine*a[0].blocksPerColumn:f*i.mcusPerColumn,s||(s=O);q<O;){for(M=0;M<L;M++)a[M].pred=0;if(w=0,1===L)for(I=a[0],A=0;A<s;A++)k(I,D,q),q++;else for(A=0;A<s;A++){for(M=0;M<L;M++)for(F=(I=a[M]).h,B=I.v,S=0;S<B;S++)for(T=0;T<F;T++)P(I,D,q,S,T);q++}if(d=0,(z=t[r]<<8|t[r+1])<=65280)throw"marker was not found";if(!(z>=65488&&z<=65495))break;r+=2}return r-p}function a(e,t,r){for(var n,i,a,s,o,c,l,h,f,u,p,m,d,v,g,b,y,x=e.quantizationTable,w=e.blockData,C=0;C<64;C+=8)f=w[t+C],u=w[t+C+1],p=w[t+C+2],m=w[t+C+3],d=w[t+C+4],v=w[t+C+5],g=w[t+C+6],b=w[t+C+7],f*=x[C],0!=(u|p|m|d|v|g|b)?(u*=x[C+1],p*=x[C+2],m*=x[C+3],d*=x[C+4],v*=x[C+5],i=(n=(n=5793*f+128>>8)+(i=5793*d+128>>8)+1>>1)-i,y=3784*(a=p)+1567*(s=g*=x[C+6])+128>>8,a=1567*a-3784*s+128>>8,l=(o=(o=2896*(u-(b*=x[C+7]))+128>>8)+(l=v<<4)+1>>1)-l,c=(h=(h=2896*(u+b)+128>>8)+(c=m<<4)+1>>1)-c,s=(n=n+(s=y)+1>>1)-s,a=(i=i+a+1>>1)-a,y=2276*o+3406*h+2048>>12,o=3406*o-2276*h+2048>>12,h=y,y=799*c+4017*l+2048>>12,c=4017*c-799*l+2048>>12,l=y,r[C]=n+h,r[C+7]=n-h,r[C+1]=i+l,r[C+6]=i-l,r[C+2]=a+c,r[C+5]=a-c,r[C+3]=s+o,r[C+4]=s-o):(y=5793*f+512>>10,r[C]=y,r[C+1]=y,r[C+2]=y,r[C+3]=y,r[C+4]=y,r[C+5]=y,r[C+6]=y,r[C+7]=y);for(var P=0;P<8;++P)f=r[P],0!=((u=r[P+8])|(p=r[P+16])|(m=r[P+24])|(d=r[P+32])|(v=r[P+40])|(g=r[P+48])|(b=r[P+56]))?(i=(n=4112+((n=5793*f+2048>>12)+(i=5793*d+2048>>12)+1>>1))-i,y=3784*(a=p)+1567*(s=g)+2048>>12,a=1567*a-3784*s+2048>>12,s=y,l=(o=(o=2896*(u-b)+2048>>12)+(l=v)+1>>1)-l,c=(h=(h=2896*(u+b)+2048>>12)+(c=m)+1>>1)-c,y=2276*o+3406*h+2048>>12,o=3406*o-2276*h+2048>>12,h=y,y=799*c+4017*l+2048>>12,c=4017*c-799*l+2048>>12,f=(f=(n=n+s+1>>1)+h)<16?0:f>=4080?255:f>>4,u=(u=(i=i+a+1>>1)+(l=y))<16?0:u>=4080?255:u>>4,p=(p=(a=i-a)+c)<16?0:p>=4080?255:p>>4,m=(m=(s=n-s)+o)<16?0:m>=4080?255:m>>4,d=(d=s-o)<16?0:d>=4080?255:d>>4,v=(v=a-c)<16?0:v>=4080?255:v>>4,g=(g=i-l)<16?0:g>=4080?255:g>>4,b=(b=n-h)<16?0:b>=4080?255:b>>4,w[t+P]=f,w[t+P+8]=u,w[t+P+16]=p,w[t+P+24]=m,w[t+P+32]=d,w[t+P+40]=v,w[t+P+48]=g,w[t+P+56]=b):(y=(y=5793*f+8192>>14)<-2040?0:y>=2024?255:y+2056>>4,w[t+P]=y,w[t+P+8]=y,w[t+P+16]=y,w[t+P+24]=y,w[t+P+32]=y,w[t+P+40]=y,w[t+P+48]=y,w[t+P+56]=y)}function s(e,t){for(var r=t.blocksPerLine,i=t.blocksPerColumn,s=new Int16Array(64),o=0;o<i;o++)for(var c=0;c<r;c++)a(t,n(t,o,c),s);return t.blockData}function o(e){return e<=0?0:e>=255?255:e}return t.prototype={parse:function(t){function n(){var e=t[f]<<8|t[f+1];return f+=2,e}function a(e){for(var t=Math.ceil(e.samplesPerLine/8/e.maxH),r=Math.ceil(e.scanLines/8/e.maxV),n=0;n<e.components.length;n++){E=e.components[n];var i=Math.ceil(Math.ceil(e.samplesPerLine/8)*E.h/e.maxH),a=Math.ceil(Math.ceil(e.scanLines/8)*E.v/e.maxV),s=t*E.h,o=r*E.v*64*(s+1);E.blockData=new Int16Array(o),E.blocksPerLine=i,E.blocksPerColumn=a}e.mcusPerLine=t,e.mcusPerColumn=r}var o,c,l,h,f=0,u=(t.length,null),p=null,m=[],d=[],v=[],g=n();if(65496!==g)throw"SOI not found";for(g=n();65497!==g;){var b,y,x;switch(g){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var w=(void 0,void 0,l=n(),h=t.subarray(f,f+l-2),f+=h.length,h);65504===g&&74===w[0]&&70===w[1]&&73===w[2]&&70===w[3]&&0===w[4]&&(u={version:{major:w[5],minor:w[6]},densityUnits:w[7],xDensity:w[8]<<8|w[9],yDensity:w[10]<<8|w[11],thumbWidth:w[12],thumbHeight:w[13],thumbData:w.subarray(14,14+3*w[12]*w[13])}),65518===g&&65===w[0]&&100===w[1]&&111===w[2]&&98===w[3]&&101===w[4]&&0===w[5]&&(p={version:w[6],flags0:w[7]<<8|w[8],flags1:w[9]<<8|w[10],transformCode:w[11]});break;case 65499:for(var C=n()+f-2;f<C;){var P=t[f++],k=new Uint16Array(64);if(P>>4==0)for(y=0;y<64;y++)k[e[y]]=t[f++];else{if(P>>4!=1)throw"DQT: invalid table spec";for(y=0;y<64;y++)k[e[y]]=n()}m[15&P]=k}break;case 65472:case 65473:case 65474:if(o)throw"Only single frame JPEGs supported";n(),(o={}).extended=65473===g,o.progressive=65474===g,o.precision=t[f++],o.scanLines=n(),o.samplesPerLine=n(),o.components=[],o.componentIds={};var I,M=t[f++],S=0,T=0;for(b=0;b<M;b++){I=t[f];var A=t[f+1]>>4,D=15&t[f+1];S<A&&(S=A),T<D&&(T=D);var L=t[f+2];x=o.components.push({h:A,v:D,quantizationTable:m[L]}),o.componentIds[I]=x-1,f+=3}o.maxH=S,o.maxV=T,a(o);break;case 65476:var z=n();for(b=2;b<z;){var O=t[f++],F=new Uint8Array(16),B=0;for(y=0;y<16;y++,f++)B+=F[y]=t[f];var q=new Uint8Array(B);for(y=0;y<B;y++,f++)q[y]=t[f];b+=17+B,(O>>4==0?v:d)[15&O]=r(F,q)}break;case 65501:n(),c=n();break;case 65498:n();var E,R=t[f++],U=[];for(b=0;b<R;b++){var X=o.componentIds[t[f++]];E=o.components[X];var _=t[f++];E.huffmanTableDC=v[_>>4],E.huffmanTableAC=d[15&_],U.push(E)}var J=t[f++],H=t[f++],Y=t[f++],G=i(t,f,o,U,c,J,H,Y>>4,15&Y);f+=G;break;case 65535:255!==t[f]&&f--;break;default:if(255===t[f-3]&&t[f-2]>=192&&t[f-2]<=254){f-=3;break}throw"unknown JPEG marker "+g.toString(16)}g=n()}for(this.width=o.samplesPerLine,this.height=o.scanLines,this.jfif=u,this.adobe=p,this.components=[],b=0;b<o.components.length;b++)E=o.components[b],this.components.push({output:s(0,E),scaleX:E.h/o.maxH,scaleY:E.v/o.maxV,blocksPerLine:E.blocksPerLine,blocksPerColumn:E.blocksPerColumn});this.numComponents=this.components.length},_getLinearizedBlockData:function(e,t){var r,n,i,a,s,o,c,l,h,f,u,p=this.width/e,m=this.height/t,d=0,v=this.components.length,g=e*t*v,b=new Uint8Array(g),y=new Uint32Array(e);for(c=0;c<v;c++){for(n=(r=this.components[c]).scaleX*p,i=r.scaleY*m,d=c,u=r.output,a=r.blocksPerLine+1<<3,s=0;s<e;s++)l=0|s*n,y[s]=(4294967288&l)<<3|7&l;for(o=0;o<t;o++)for(f=a*(4294967288&(l=0|o*i))|(7&l)<<3,s=0;s<e;s++)b[d]=u[f+y[s]],d+=v}var x=this.decodeTransform;if(x)for(c=0;c<g;)for(l=0,h=0;l<v;l++,c++,h+=2)b[c]=(b[c]*x[h]>>8)+x[h+1];return b},_isColorConversionNeeded:function(){return!(!this.adobe||!this.adobe.transformCode)||3===this.numComponents},_convertYccToRgb:function(e){for(var t,r,n,i=0,a=e.length;i<a;i+=3)t=e[i],r=e[i+1],n=e[i+2],e[i]=o(t-179.456+1.402*n),e[i+1]=o(t+135.459-.344*r-.714*n),e[i+2]=o(t-226.816+1.772*r);return e},_convertYcckToRgb:function(e){for(var t,r,n,i,a=0,s=0,c=e.length;s<c;s+=4){t=e[s];var l=(r=e[s+1])*(-660635669420364e-19*r+.000437130475926232*(n=e[s+2])-54080610064599e-18*t+.00048449797120281*(i=e[s+3])-.154362151871126)-122.67195406894+n*(-.000957964378445773*n+.000817076911346625*t-.00477271405408747*i+1.53380253221734)+t*(.000961250184130688*t-.00266257332283933*i+.48357088451265)+i*(-.000336197177618394*i+.484791561490776),h=107.268039397724+r*(219927104525741e-19*r-.000640992018297945*n+.000659397001245577*t+.000426105652938837*i-.176491792462875)+n*(-.000778269941513683*n+.00130872261408275*t+.000770482631801132*i-.151051492775562)+t*(.00126935368114843*t-.00265090189010898*i+.25802910206845)+i*(-.000318913117588328*i-.213742400323665),f=r*(-.000570115196973677*r-263409051004589e-19*n+.0020741088115012*t-.00288260236853442*i+.814272968359295)-20.810012546947+n*(-153496057440975e-19*n-.000132689043961446*t+.000560833691242812*i-.195152027534049)+t*(.00174418132927582*t-.00255243321439347*i+.116935020465145)+i*(-.000343531996510555*i+.24165260232407);e[a++]=o(l),e[a++]=o(h),e[a++]=o(f)}return e},_convertYcckToCmyk:function(e){for(var t,r,n,i=0,a=e.length;i<a;i+=4)t=e[i],r=e[i+1],n=e[i+2],e[i]=o(434.456-t-1.402*n),e[i+1]=o(119.541-t+.344*r+.714*n),e[i+2]=o(481.816-t-1.772*r);return e},_convertCmykToRgb:function(e){for(var t,r,n,i,a=0,s=-16581375,o=0,c=e.length;o<c;o+=4){var l=(t=e[o])*(-4.387332384609988*t+54.48615194189176*(r=e[o+1])+18.82290502165302*(n=e[o+2])+212.25662451639585*(i=e[o+3])-72734.4411664936)+r*(1.7149763477362134*r-5.6096736904047315*n-17.873870861415444*i-1401.7366389350734)+n*(-2.5217340131683033*n-21.248923337353073*i+4465.541406466231)-i*(21.86122147463605*i+48317.86113160301),h=t*(8.841041422036149*t+60.118027045597366*r+6.871425592049007*n+31.159100130055922*i-20220.756542821975)+r*(-15.310361306967817*r+17.575251261109482*n+131.35250912493976*i-48691.05921601825)+n*(4.444339102852739*n+9.8632861493405*i-6341.191035517494)-i*(20.737325471181034*i+47890.15695978492),f=t*(.8842522430003296*t+8.078677503112928*r+30.89978309703729*n-.23883238689178934*i-3616.812083916688)+r*(10.49593273432072*r+63.02378494754052*n+50.606957656360734*i-28620.90484698408)+n*(.03296041114873217*n+115.60384449646641*i-49363.43385999684)-i*(22.33816807309886*i+45932.16563550634);e[a++]=l>=0?255:l<=s?0:255+l*(1/255/255)|0,e[a++]=h>=0?255:h<=s?0:255+h*(1/255/255)|0,e[a++]=f>=0?255:f<=s?0:255+f*(1/255/255)|0}return e},getData:function(e,t,r){if(this.numComponents>4)throw"Unsupported color mode";var n=this._getLinearizedBlockData(e,t);if(3===this.numComponents)return this._convertYccToRgb(n);if(4===this.numComponents){if(this._isColorConversionNeeded())return r?this._convertYcckToRgb(n):this._convertYcckToCmyk(n);if(r)return this._convertCmykToRgb(n)}return n}},t}(),r=function(){var e=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];function t(e,t,r){this.data=e,this.bp=t,this.dataEnd=r,this.chigh=e[t],this.clow=0,this.byteIn(),this.chigh=this.chigh<<7&65535|this.clow>>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}return t.prototype={byteIn:function(){var e=this.data,t=this.bp;255===e[t]?e[t+1]>143?(this.clow+=65280,this.ct=8):(t++,this.clow+=e[t]<<9,this.ct=7,this.bp=t):(t++,this.clow+=t<this.dataEnd?e[t]<<8:65280,this.ct=8,this.bp=t),this.clow>65535&&(this.chigh+=this.clow>>16,this.clow&=65535)},readBit:function(t,r){var n,i=t[r]>>1,a=1&t[r],s=e[i],o=s.qe,c=this.a-o;if(this.chigh<o)c<o?(c=o,n=a,i=s.nmps):(c=o,n=1^a,1===s.switchFlag&&(a=n),i=s.nlps);else{if(this.chigh-=o,0!=(32768&c))return this.a=c,a;c<o?(n=1^a,1===s.switchFlag&&(a=n),i=s.nlps):(n=a,i=s.nmps)}do{0===this.ct&&this.byteIn(),c<<=1,this.chigh=this.chigh<<1&65535|this.clow>>15&1,this.clow=this.clow<<1&65535,this.ct--}while(0==(32768&c));return this.a=c,t[r]=i<<1|a,n}},t}(),n=function(){var e={LL:0,LH:1,HL:1,HH:2};function t(){this.failOnCorruptedImage=!1}function n(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz),e.x1=Math.ceil(t.Xsiz/e.XRsiz),e.y0=Math.ceil(t.YOsiz/e.YRsiz),e.y1=Math.ceil(t.Ysiz/e.YRsiz),e.width=e.x1-e.x0,e.height=e.y1-e.y0}function i(e,t){for(var r,n=e.SIZ,i=[],a=Math.ceil((n.Xsiz-n.XTOsiz)/n.XTsiz),s=Math.ceil((n.Ysiz-n.YTOsiz)/n.YTsiz),o=0;o<s;o++)for(var c=0;c<a;c++)(r={}).tx0=Math.max(n.XTOsiz+c*n.XTsiz,n.XOsiz),r.ty0=Math.max(n.YTOsiz+o*n.YTsiz,n.YOsiz),r.tx1=Math.min(n.XTOsiz+(c+1)*n.XTsiz,n.Xsiz),r.ty1=Math.min(n.YTOsiz+(o+1)*n.YTsiz,n.Ysiz),r.width=r.tx1-r.tx0,r.height=r.ty1-r.ty0,r.components=[],i.push(r);e.tiles=i;for(var l=0,h=n.Csiz;l<h;l++)for(var f=t[l],u=0,p=i.length;u<p;u++){var m={};r=i[u],m.tcx0=Math.ceil(r.tx0/f.XRsiz),m.tcy0=Math.ceil(r.ty0/f.YRsiz),m.tcx1=Math.ceil(r.tx1/f.XRsiz),m.tcy1=Math.ceil(r.ty1/f.YRsiz),m.width=m.tcx1-m.tcx0,m.height=m.tcy1-m.tcy0,r.components[l]=m}}function s(e,t,r){var n=t.codingStyleParameters,i={};return n.entropyCoderWithCustomPrecincts?(i.PPx=n.precinctsSizes[r].PPx,i.PPy=n.precinctsSizes[r].PPy):(i.PPx=15,i.PPy=15),i.xcb_=r>0?Math.min(n.xcb,i.PPx-1):Math.min(n.xcb,i.PPx),i.ycb_=r>0?Math.min(n.ycb,i.PPy-1):Math.min(n.ycb,i.PPy),i}function l(e,t,r){var n=1<<r.PPx,i=1<<r.PPy,a=0===t.resLevel,s=1<<r.PPx+(a?0:-1),o=1<<r.PPy+(a?0:-1),c=t.trx1>t.trx0?Math.ceil(t.trx1/n)-Math.floor(t.trx0/n):0,l=t.try1>t.try0?Math.ceil(t.try1/i)-Math.floor(t.try0/i):0,h=c*l;t.precinctParameters={precinctWidth:n,precinctHeight:i,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function h(e,t,r){var n,i,a,s,o=r.xcb_,c=r.ycb_,l=1<<o,h=1<<c,f=t.tbx0>>o,u=t.tby0>>c,p=t.tbx1+l-1>>o,m=t.tby1+h-1>>c,d=t.resolution.precinctParameters,v=[],g=[];for(i=u;i<m;i++)for(n=f;n<p;n++)if((a={cbx:n,cby:i,tbx0:l*n,tby0:h*i,tbx1:l*(n+1),tby1:h*(i+1)}).tbx0_=Math.max(t.tbx0,a.tbx0),a.tby0_=Math.max(t.tby0,a.tby0),a.tbx1_=Math.min(t.tbx1,a.tbx1),a.tby1_=Math.min(t.tby1,a.tby1),s=Math.floor((a.tbx0_-t.tbx0)/d.precinctWidthInSubband)+Math.floor((a.tby0_-t.tby0)/d.precinctHeightInSubband)*d.numprecinctswide,a.precinctNumber=s,a.subbandType=t.type,a.Lblock=3,!(a.tbx1_<=a.tbx0_||a.tby1_<=a.tby0_)){v.push(a);var b=g[s];void 0!==b?(n<b.cbxMin?b.cbxMin=n:n>b.cbxMax&&(b.cbxMax=n),i<b.cbyMin?b.cbxMin=i:i>b.cbyMax&&(b.cbyMax=i)):g[s]=b={cbxMin:n,cbyMin:i,cbxMax:n,cbyMax:i},a.precinct=b}t.codeblockParameters={codeblockWidth:o,codeblockHeight:c,numcodeblockwide:p-f+1,numcodeblockhigh:m-u+1},t.codeblocks=v,t.precincts=g}function p(e,t,r){for(var n=[],i=e.subbands,a=0,s=i.length;a<s;a++)for(var o=i[a].codeblocks,c=0,l=o.length;c<l;c++){var h=o[c];h.precinctNumber===t&&n.push(h)}return{layerNumber:r,codeblocks:n}}function m(e){for(var t=e.SIZ,r=e.currentTile.index,n=e.tiles[r],i=n.codingStyleDefaultParameters.layersCount,a=t.Csiz,s=0,o=0;o<a;o++)s=Math.max(s,n.components[o].codingStyleParameters.decompositionLevelsCount);var c=0,l=0,h=0,f=0;this.nextPacket=function(){for(;c<i;c++){for(;l<=s;l++){for(;h<a;h++){var e=n.components[h];if(!(l>e.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[l],r=t.precinctParameters.numprecincts;f<r;){var o=p(t,f,c);return f++,o}f=0}}h=0}l=0}throw new Error("JPX Error: Out of packets")}}function d(e){for(var t=e.SIZ,r=e.currentTile.index,n=e.tiles[r],i=n.codingStyleDefaultParameters.layersCount,a=t.Csiz,s=0,o=0;o<a;o++)s=Math.max(s,n.components[o].codingStyleParameters.decompositionLevelsCount);var c=0,l=0,h=0,f=0;this.nextPacket=function(){for(;c<=s;c++){for(;l<i;l++){for(;h<a;h++){var e=n.components[h];if(!(c>e.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[c],r=t.precinctParameters.numprecincts;f<r;){var o=p(t,f,l);return f++,o}f=0}}h=0}l=0}throw new Error("JPX Error: Out of packets")}}function v(e){var t,r,n,i,a=e.SIZ,s=e.currentTile.index,o=e.tiles[s],c=o.codingStyleDefaultParameters.layersCount,l=a.Csiz,h=0;for(n=0;n<l;n++){var f=o.components[n];h=Math.max(h,f.codingStyleParameters.decompositionLevelsCount)}var u=new Int32Array(h+1);for(r=0;r<=h;++r){var m=0;for(n=0;n<l;++n){var d=o.components[n].resolutions;r<d.length&&(m=Math.max(m,d[r].precinctParameters.numprecincts))}u[r]=m}t=0,r=0,n=0,i=0,this.nextPacket=function(){for(;r<=h;r++){for(;i<u[r];i++){for(;n<l;n++){var e=o.components[n];if(!(r>e.codingStyleParameters.decompositionLevelsCount)){var a=e.resolutions[r],s=a.precinctParameters.numprecincts;if(!(i>=s)){for(;t<c;){var f=p(a,i,t);return t++,f}t=0}}}n=0}i=0}throw new Error("JPX Error: Out of packets")}}function g(e){var t=e.SIZ,r=e.currentTile.index,n=e.tiles[r],i=n.codingStyleDefaultParameters.layersCount,a=t.Csiz,s=x(n),o=s,c=0,l=0,h=0,f=0,u=0;this.nextPacket=function(){for(;u<o.maxNumHigh;u++){for(;f<o.maxNumWide;f++){for(;h<a;h++){for(var e=n.components[h],t=e.codingStyleParameters.decompositionLevelsCount;l<=t;l++){var r=e.resolutions[l],m=s.components[h].resolutions[l],d=y(f,u,m,o,r);if(null!==d){for(;c<i;){var v=p(r,d,c);return c++,v}c=0}}l=0}h=0}f=0}throw new Error("JPX Error: Out of packets")}}function b(e){var t=e.SIZ,r=e.currentTile.index,n=e.tiles[r],i=n.codingStyleDefaultParameters.layersCount,a=t.Csiz,s=x(n),o=0,c=0,l=0,h=0,f=0;this.nextPacket=function(){for(;l<a;++l){for(var e=n.components[l],t=s.components[l],r=e.codingStyleParameters.decompositionLevelsCount;f<t.maxNumHigh;f++){for(;h<t.maxNumWide;h++){for(;c<=r;c++){var u=e.resolutions[c],m=t.resolutions[c],d=y(h,f,m,t,u);if(null!==d){for(;o<i;){var v=p(u,d,o);return o++,v}o=0}}c=0}h=0}f=0}throw new Error("JPX Error: Out of packets")}}function y(e,t,r,n,i){var a=e*n.minWidth,s=t*n.minHeight;if(a%r.width!=0||s%r.height!=0)return null;var o=s/r.width*i.precinctParameters.numprecinctswide;return a/r.height+o}function x(e){for(var t=e.components.length,r=Number.MAX_VALUE,n=Number.MAX_VALUE,i=0,a=0,s=new Array(t),o=0;o<t;o++){for(var c=e.components[o],l=c.codingStyleParameters.decompositionLevelsCount,h=new Array(l+1),f=Number.MAX_VALUE,u=Number.MAX_VALUE,p=0,m=0,d=1,v=l;v>=0;--v){var g=c.resolutions[v],b=d*g.precinctParameters.precinctWidth,y=d*g.precinctParameters.precinctHeight;f=Math.min(f,b),u=Math.min(u,y),p=Math.max(p,g.precinctParameters.numprecinctswide),m=Math.max(m,g.precinctParameters.numprecinctshigh),h[v]={width:b,height:y},d<<=1}r=Math.min(r,f),n=Math.min(n,u),i=Math.max(i,p),a=Math.max(a,m),s[o]={resolutions:h,minWidth:f,minHeight:u,maxNumWide:p,maxNumHigh:m}}return{components:s,minWidth:r,minHeight:n,maxNumWide:i,maxNumHigh:a}}function w(e){for(var t=e.SIZ,r=e.currentTile.index,n=e.tiles[r],i=t.Csiz,a=0;a<i;a++){for(var o=n.components[a],c=o.codingStyleParameters.decompositionLevelsCount,f=[],u=[],p=0;p<=c;p++){var y,x=s(0,o,p),w={},C=1<<c-p;if(w.trx0=Math.ceil(o.tcx0/C),w.try0=Math.ceil(o.tcy0/C),w.trx1=Math.ceil(o.tcx1/C),w.try1=Math.ceil(o.tcy1/C),w.resLevel=p,l(0,w,x),f.push(w),0===p)(y={}).type="LL",y.tbx0=Math.ceil(o.tcx0/C),y.tby0=Math.ceil(o.tcy0/C),y.tbx1=Math.ceil(o.tcx1/C),y.tby1=Math.ceil(o.tcy1/C),y.resolution=w,h(0,y,x),u.push(y),w.subbands=[y];else{var P=1<<c-p+1,k=[];(y={}).type="HL",y.tbx0=Math.ceil(o.tcx0/P-.5),y.tby0=Math.ceil(o.tcy0/P),y.tbx1=Math.ceil(o.tcx1/P-.5),y.tby1=Math.ceil(o.tcy1/P),y.resolution=w,h(0,y,x),u.push(y),k.push(y),(y={}).type="LH",y.tbx0=Math.ceil(o.tcx0/P),y.tby0=Math.ceil(o.tcy0/P-.5),y.tbx1=Math.ceil(o.tcx1/P),y.tby1=Math.ceil(o.tcy1/P-.5),y.resolution=w,h(0,y,x),u.push(y),k.push(y),(y={}).type="HH",y.tbx0=Math.ceil(o.tcx0/P-.5),y.tby0=Math.ceil(o.tcy0/P-.5),y.tbx1=Math.ceil(o.tcx1/P-.5),y.tby1=Math.ceil(o.tcy1/P-.5),y.resolution=w,h(0,y,x),u.push(y),k.push(y),w.subbands=k}}o.resolutions=f,o.subbands=u}var I=n.codingStyleDefaultParameters.progressionOrder;switch(I){case 0:n.packetsIterator=new m(e);break;case 1:n.packetsIterator=new d(e);break;case 2:n.packetsIterator=new v(e);break;case 3:n.packetsIterator=new g(e);break;case 4:n.packetsIterator=new b(e);break;default:throw new Error("JPX Error: Unsupported progression order "+I)}}function C(e,t,r,n){var i,s=0,o=0,c=!1;function l(e){for(;o<e;){var n=t[r+s];s++,c?(i=i<<7|n,o+=7,c=!1):(i=i<<8|n,o+=8),255===n&&(c=!0)}return i>>>(o-=e)&(1<<e)-1}function h(e){return 255===t[r+s-1]&&t[r+s]===e?(f(1),!0):255===t[r+s]&&t[r+s+1]===e&&(f(2),!0)}function f(e){s+=e}function u(){o=0,c&&(s++,c=!1)}function p(){if(0===l(1))return 1;if(0===l(1))return 2;var e=l(2);return e<3?e+3:(e=l(5))<31?e+6:(e=l(7))+37}for(var m=e.currentTile.index,d=e.tiles[m],v=e.COD.sopMarkerUsed,g=e.COD.ephMarkerUsed,b=d.packetsIterator;s<n;){u(),v&&h(145)&&f(4);var y=b.nextPacket();if(l(1)){for(var x,w=y.layerNumber,C=[],P=0,k=y.codeblocks.length;P<k;P++){var I=(x=y.codeblocks[P]).precinct,T=x.cbx-I.cbxMin,A=x.cby-I.cbyMin,D=!1,L=!1;if(void 0!==x.included)D=!!l(1);else{var z,O;if(void 0!==(I=x.precinct).inclusionTree)z=I.inclusionTree;else{var F=I.cbxMax-I.cbxMin+1,B=I.cbyMax-I.cbyMin+1;z=new S(F,B,w),O=new M(F,B),I.inclusionTree=z,I.zeroBitPlanesTree=O}if(z.reset(T,A,w))for(;;){if(!l(1)){z.incrementValue(w);break}if(!z.nextLevel()){x.included=!0,D=L=!0;break}}}if(D){if(L){for((O=I.zeroBitPlanesTree).reset(T,A);;)if(l(1)){if(!O.nextLevel())break}else O.incrementValue();x.zeroBitPlanes=O.value}for(var q=p();l(1);)x.Lblock++;var E=a(q),R=l((q<1<<E?E-1:E)+x.Lblock);C.push({codeblock:x,codingpasses:q,dataLength:R})}}for(u(),g&&h(146);C.length>0;){var U=C.shift();void 0===(x=U.codeblock).data&&(x.data=[]),x.data.push({data:t,start:r+s,end:r+s+U.dataLength,codingpasses:U.codingpasses}),s+=U.dataLength}}}return s}function P(e,t,n,i,a,s,o,c){for(var l=i.tbx0,h=i.tby0,f=i.tbx1-i.tbx0,u=i.codeblocks,p="H"===i.type.charAt(0)?1:0,m="H"===i.type.charAt(1)?t:0,d=0,v=u.length;d<v;++d){var g=u[d],b=g.tbx1_-g.tbx0_,y=g.tby1_-g.tby0_;if(0!==b&&0!==y&&void 0!==g.data){var x,w;x=new T(b,y,g.subbandType,g.zeroBitPlanes,s),w=2;var C,P,k,I=g.data,M=0,S=0;for(C=0,P=I.length;C<P;C++)M+=(k=I[C]).end-k.start,S+=k.codingpasses;var A=new Uint8Array(M),D=0;for(C=0,P=I.length;C<P;C++){var L=(k=I[C]).data.subarray(k.start,k.end);A.set(L,D),D+=L.length}var z=new r(A,0,M);for(x.setDecoder(z),C=0;C<S;C++){switch(w){case 0:x.runSignificancePropogationPass();break;case 1:x.runMagnitudeRefinementPass();break;case 2:x.runCleanupPass(),c&&x.checkSegmentationSymbol()}w=(w+1)%3}var O,F,B,q=g.tbx0_-l+(g.tby0_-h)*f,E=x.coefficentsSign,R=x.coefficentsMagnitude,U=x.bitsDecoded,X=o?0:.5;D=0;var _="LL"!==i.type;for(C=0;C<y;C++){var J=2*(q/f|0)*(t-f)+p+m;for(O=0;O<b;O++)0!==(F=R[D])&&(F=(F+X)*a,0!==E[D]&&(F=-F),B=U[D],e[_?J+(q<<1):q]=o&&B>=s?F:F*(1<<s-B)),q++,D++;q+=f-b}}}}function k(t,r,n){for(var i=r.components[n],a=i.codingStyleParameters,s=i.quantizationParameters,o=a.decompositionLevelsCount,c=s.SPqcds,l=s.scalarExpounded,h=s.guardBits,f=a.segmentationSymbolUsed,u=t.components[n].precision,p=a.reversibleTransformation,m=p?new L:new D,d=[],v=0,g=0;g<=o;g++){for(var b=i.resolutions[g],y=b.trx1-b.trx0,x=b.try1-b.try0,w=new Float32Array(y*x),C=0,k=b.subbands.length;C<k;C++){var I,M;l?(I=c[v].mu,M=c[v].epsilon,v++):(I=c[0].mu,M=c[0].epsilon+(g>0?1-g:0));var S=b.subbands[C],T=e[S.type];P(w,y,0,S,p?1:Math.pow(2,u+T-M)*(1+I/2048),h+M-1,p,f)}d.push({width:y,height:x,items:w})}var A=m.calculate(d,i.tcx0,i.tcy0);return{left:i.tcx0,top:i.tcy0,width:A.width,height:A.height,items:A.items}}function I(e,t){for(var r=e.SIZ.Csiz,n=e.tiles[t],i=0;i<r;i++){var a=n.components[i],s=void 0!==e.currentTile.QCC[i]?e.currentTile.QCC[i]:e.currentTile.QCD;a.quantizationParameters=s;var o=void 0!==e.currentTile.COC[i]?e.currentTile.COC[i]:e.currentTile.COD;a.codingStyleParameters=o}n.codingStyleDefaultParameters=e.currentTile.COD}t.prototype={parse:function(e){if(65359!==o(e,0))for(var t=0,r=e.length;t<r;){var n=8,i=c(e,t),a=c(e,t+4);if(t+=n,1===i&&(i=4294967296*c(e,t)+c(e,t+4),t+=8,n+=8),0===i&&(i=r-t+n),i<n)throw new Error("JPX Error: Invalid box field size");var s=i-n,l=!0;switch(a){case 1785737832:l=!1;break;case 1668246642:var h=e[t];if(e[t+1],e[t+2],1===h){var p=c(e,t+3);switch(p){case 16:case 17:case 18:break;default:f("Unknown colorspace "+p)}}else 2===h&&u("ICC profile not supported");break;case 1785737827:this.parseCodestream(e,t,t+s);break;case 1783636e3:218793738!==c(e,t)&&f("Invalid JP2 signature");break;case 1783634458:case 1718909296:case 1920099697:case 1919251232:case 1768449138:break;default:var m=String.fromCharCode(a>>24&255,a>>16&255,a>>8&255,255&a);f("Unsupported header type "+a+" ("+m+")")}l&&(t+=s)}else this.parseCodestream(e,0,e.length)},parseImageProperties:function(e){for(var t=e.getByte();t>=0;)if(65361==(t<<8|(t=e.getByte()))){e.skip(4);var r=e.getInt32()>>>0,n=e.getInt32()>>>0,i=e.getInt32()>>>0,a=e.getInt32()>>>0;e.skip(16);var s=e.getUint16();return this.width=r-i,this.height=n-a,this.componentsCount=s,void(this.bitsPerComponent=8)}throw new Error("JPX Error: No size marker found in JPX stream")},parseCodestream:function(e,t,r){var a={};try{for(var s=!1,l=t;l+1<r;){var h=o(e,l);l+=2;var u,p,m,d,v,g,b=0;switch(h){case 65359:a.mainHeader=!0;break;case 65497:break;case 65361:b=o(e,l);var y={};y.Xsiz=c(e,l+4),y.Ysiz=c(e,l+8),y.XOsiz=c(e,l+12),y.YOsiz=c(e,l+16),y.XTsiz=c(e,l+20),y.YTsiz=c(e,l+24),y.XTOsiz=c(e,l+28),y.YTOsiz=c(e,l+32);var x=o(e,l+36);y.Csiz=x;var P=[];u=l+38;for(var M=0;M<x;M++){var S={precision:1+(127&e[u]),isSigned:!!(128&e[u]),XRsiz:e[u+1],YRsiz:e[u+1]};n(S,y),P.push(S)}a.SIZ=y,a.components=P,i(a,P),a.QCC=[],a.COC=[];break;case 65372:b=o(e,l);var T={};switch(u=l+2,31&(p=e[u++])){case 0:d=8,v=!0;break;case 1:d=16,v=!1;break;case 2:d=16,v=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+p)}for(T.noQuantization=8===d,T.scalarExpounded=v,T.guardBits=p>>5,m=[];u<b+l;){var A={};8===d?(A.epsilon=e[u++]>>3,A.mu=0):(A.epsilon=e[u]>>3,A.mu=(7&e[u])<<8|e[u+1],u+=2),m.push(A)}T.SPqcds=m,a.mainHeader?a.QCD=T:(a.currentTile.QCD=T,a.currentTile.QCC=[]);break;case 65373:b=o(e,l);var D,L={};switch(u=l+2,a.SIZ.Csiz<257?D=e[u++]:(D=o(e,u),u+=2),31&(p=e[u++])){case 0:d=8,v=!0;break;case 1:d=16,v=!1;break;case 2:d=16,v=!0;break;default:throw new Error("JPX Error: Invalid SQcd value "+p)}for(L.noQuantization=8===d,L.scalarExpounded=v,L.guardBits=p>>5,m=[];u<b+l;)A={},8===d?(A.epsilon=e[u++]>>3,A.mu=0):(A.epsilon=e[u]>>3,A.mu=(7&e[u])<<8|e[u+1],u+=2),m.push(A);L.SPqcds=m,a.mainHeader?a.QCC[D]=L:a.currentTile.QCC[D]=L;break;case 65362:b=o(e,l);var z={};u=l+2;var O=e[u++];z.entropyCoderWithCustomPrecincts=!!(1&O),z.sopMarkerUsed=!!(2&O),z.ephMarkerUsed=!!(4&O),z.progressionOrder=e[u++],z.layersCount=o(e,u),u+=2,z.multipleComponentTransform=e[u++],z.decompositionLevelsCount=e[u++],z.xcb=2+(15&e[u++]),z.ycb=2+(15&e[u++]);var F=e[u++];if(z.selectiveArithmeticCodingBypass=!!(1&F),z.resetContextProbabilities=!!(2&F),z.terminationOnEachCodingPass=!!(4&F),z.verticalyStripe=!!(8&F),z.predictableTermination=!!(16&F),z.segmentationSymbolUsed=!!(32&F),z.reversibleTransformation=e[u++],z.entropyCoderWithCustomPrecincts){for(var B=[];u<b+l;){var q=e[u++];B.push({PPx:15&q,PPy:q>>4})}z.precinctsSizes=B}var E=[];if(z.selectiveArithmeticCodingBypass&&E.push("selectiveArithmeticCodingBypass"),z.resetContextProbabilities&&E.push("resetContextProbabilities"),z.terminationOnEachCodingPass&&E.push("terminationOnEachCodingPass"),z.verticalyStripe&&E.push("verticalyStripe"),z.predictableTermination&&E.push("predictableTermination"),E.length>0)throw s=!0,new Error("JPX Error: Unsupported COD options ("+E.join(", ")+")");a.mainHeader?a.COD=z:(a.currentTile.COD=z,a.currentTile.COC=[]);break;case 65424:b=o(e,l),(g={}).index=o(e,l+2),g.length=c(e,l+4),g.dataEnd=g.length+l-2,g.partIndex=e[l+8],g.partsCount=e[l+9],a.mainHeader=!1,0===g.partIndex&&(g.COD=a.COD,g.COC=a.COC.slice(0),g.QCD=a.QCD,g.QCC=a.QCC.slice(0)),a.currentTile=g;break;case 65427:0===(g=a.currentTile).partIndex&&(I(a,g.index),w(a)),C(a,e,l,b=g.dataEnd-l);break;case 65365:case 65367:case 65368:case 65380:b=o(e,l);break;case 65363:throw new Error("JPX Error: Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("JPX Error: Unknown codestream code: "+h.toString(16))}l+=b}}catch(e){if(s||this.failOnCorruptedImage)throw e;f("Trying to recover from "+e.message)}this.tiles=function(e){for(var t=e.SIZ,r=e.components,n=t.Csiz,i=[],a=0,s=e.tiles.length;a<s;a++){var o,c=e.tiles[a],l=[];for(o=0;o<n;o++)l[o]=k(e,c,o);var h,f,u,p,m,d,v,g,b,y,x,w,C,P,I,M=l[0],S=new Uint8Array(M.items.length*n),T={left:M.left,top:M.top,width:M.width,height:M.height,items:S},A=0;if(c.codingStyleDefaultParameters.multipleComponentTransform){var D=4===n,L=l[0].items,z=l[1].items,O=l[2].items,F=D?l[3].items:null;f=.5+(128<<(h=r[0].precision-8)),p=-(m=.5*(u=255*(1<<h)));var B=c.components[0],q=n-3;if(v=L.length,B.codingStyleParameters.reversibleTransformation)for(d=0;d<v;d++,A+=q)g=L[d]+f,b=z[d],x=(w=g-((y=O[d])+b>>2))+y,C=w+b,S[A++]=x<=0?0:x>=u?255:x>>h,S[A++]=w<=0?0:w>=u?255:w>>h,S[A++]=C<=0?0:C>=u?255:C>>h;else for(d=0;d<v;d++,A+=q)g=L[d]+f,b=z[d],x=g+1.402*(y=O[d]),w=g-.34413*b-.71414*y,C=g+1.772*b,S[A++]=x<=0?0:x>=u?255:x>>h,S[A++]=w<=0?0:w>=u?255:w>>h,S[A++]=C<=0?0:C>=u?255:C>>h;if(D)for(d=0,A=3;d<v;d++,A+=4)P=F[d],S[A]=P<=p?0:P>=m?255:P+f>>h}else for(o=0;o<n;o++){var E=l[o].items;for(f=.5+(128<<(h=r[o].precision-8)),p=-(u=127.5*(1<<h)),A=o,d=0,v=E.length;d<v;d++)I=E[d],S[A]=I<=p?0:I>=u?255:I+f>>h,A+=n}i.push(T)}return i}(a),this.width=a.SIZ.Xsiz-a.SIZ.XOsiz,this.height=a.SIZ.Ysiz-a.SIZ.YOsiz,this.componentsCount=a.SIZ.Csiz}};var M=function(){function e(e,t){var r=a(Math.max(e,t))+1;this.levels=[];for(var n=0;n<r;n++){var i={width:e,height:t,items:[]};this.levels.push(i),e=Math.ceil(e/2),t=Math.ceil(t/2)}}return e.prototype={reset:function(e,t){for(var r,n=0,i=0;n<this.levels.length;){var a=e+t*(r=this.levels[n]).width;if(void 0!==r.items[a]){i=r.items[a];break}r.index=a,e>>=1,t>>=1,n++}n--,(r=this.levels[n]).items[r.index]=i,this.currentLevel=n,delete this.value},incrementValue:function(){var e=this.levels[this.currentLevel];e.items[e.index]++},nextLevel:function(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];return--e<0?(this.value=r,!1):(this.currentLevel=e,(t=this.levels[e]).items[t.index]=r,!0)}},e}(),S=function(){function e(e,t,r){var n=a(Math.max(e,t))+1;this.levels=[];for(var i=0;i<n;i++){for(var s=new Uint8Array(e*t),o=0,c=s.length;o<c;o++)s[o]=r;var l={width:e,height:t,items:s};this.levels.push(l),e=Math.ceil(e/2),t=Math.ceil(t/2)}}return e.prototype={reset:function(e,t,r){for(var n=0;n<this.levels.length;){var i=this.levels[n],a=e+t*i.width;i.index=a;var s=i.items[a];if(255===s)break;if(s>r)return this.currentLevel=n,this.propagateValues(),!1;e>>=1,t>>=1,n++}return this.currentLevel=n-1,!0},incrementValue:function(e){var t=this.levels[this.currentLevel];t.items[t.index]=e+1,this.propagateValues()},propagateValues:function(){for(var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];--e>=0;)(t=this.levels[e]).items[t.index]=r},nextLevel:function(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];return t.items[t.index]=255,!(--e<0||(this.currentLevel=e,(t=this.levels[e]).items[t.index]=r,0))}},e}(),T=function(){var e=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),t=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function n(n,i,a,s,o){this.width=n,this.height=i,this.contextLabelTable="HH"===a?r:"HL"===a?t:e;var c=n*i;this.neighborsSignificance=new Uint8Array(c),this.coefficentsSign=new Uint8Array(c),this.coefficentsMagnitude=o>14?new Uint32Array(c):o>6?new Uint16Array(c):new Uint8Array(c),this.processingFlags=new Uint8Array(c);var l=new Uint8Array(c);if(0!==s)for(var h=0;h<c;h++)l[h]=s;this.bitsDecoded=l,this.reset()}return n.prototype={setDecoder:function(e){this.decoder=e},reset:function(){this.contexts=new Int8Array(19),this.contexts[0]=8,this.contexts[17]=92,this.contexts[18]=6},setNeighborsSignificance:function(e,t,r){var n,i=this.neighborsSignificance,a=this.width,s=this.height,o=t>0,c=t+1<a;e>0&&(n=r-a,o&&(i[n-1]+=16),c&&(i[n+1]+=16),i[n]+=4),e+1<s&&(n=r+a,o&&(i[n-1]+=16),c&&(i[n+1]+=16),i[n]+=4),o&&(i[r-1]+=1),c&&(i[r+1]+=1),i[r]|=128},runSignificancePropogationPass:function(){for(var e=this.decoder,t=this.width,r=this.height,n=this.coefficentsMagnitude,i=this.coefficentsSign,a=this.neighborsSignificance,s=this.processingFlags,o=this.contexts,c=this.contextLabelTable,l=this.bitsDecoded,h=0;h<r;h+=4)for(var f=0;f<t;f++)for(var u=h*t+f,p=0;p<4;p++,u+=t){var m=h+p;if(m>=r)break;if(s[u]&=-2,!n[u]&&a[u]){var d=c[a[u]];if(e.readBit(o,d)){var v=this.decodeSignBit(m,f,u);i[u]=v,n[u]=1,this.setNeighborsSignificance(m,f,u),s[u]|=2}l[u]++,s[u]|=1}}},decodeSignBit:function(e,t,r){var n,i,a,s,o,c,l=this.width,h=this.height,f=this.coefficentsMagnitude,u=this.coefficentsSign;s=t>0&&0!==f[r-1],t+1<l&&0!==f[r+1]?(a=u[r+1],n=s?1-a-(i=u[r-1]):1-a-a):n=s?1-(i=u[r-1])-i:0;var p=3*n;return s=e>0&&0!==f[r-l],e+1<h&&0!==f[r+l]?(a=u[r+l],n=s?1-a-(i=u[r-l])+p:1-a-a+p):n=s?1-(i=u[r-l])-i+p:p,n>=0?(o=9+n,c=this.decoder.readBit(this.contexts,o)):(o=9-n,c=1^this.decoder.readBit(this.contexts,o)),c},runMagnitudeRefinementPass:function(){for(var e,t=this.decoder,r=this.width,n=this.height,i=this.coefficentsMagnitude,a=this.neighborsSignificance,s=this.contexts,o=this.bitsDecoded,c=this.processingFlags,l=r*n,h=4*r,f=0;f<l;f=e){e=Math.min(l,f+h);for(var u=0;u<r;u++)for(var p=f+u;p<e;p+=r)if(i[p]&&0==(1&c[p])){var m=16;0!=(2&c[p])&&(c[p]^=2,m=0==(127&a[p])?15:14);var d=t.readBit(s,m);i[p]=i[p]<<1|d,o[p]++,c[p]|=1}}},runCleanupPass:function(){for(var e,t=this.decoder,r=this.width,n=this.height,i=this.neighborsSignificance,a=this.coefficentsMagnitude,s=this.coefficentsSign,o=this.contexts,c=this.contextLabelTable,l=this.bitsDecoded,h=this.processingFlags,f=r,u=2*r,p=3*r,m=0;m<n;m=e){e=Math.min(m+4,n);for(var d=m*r,v=m+3<n,g=0;g<r;g++){var b,y=d+g,x=0,w=y,C=m;if(v&&0===h[y]&&0===h[y+f]&&0===h[y+u]&&0===h[y+p]&&0===i[y]&&0===i[y+f]&&0===i[y+u]&&0===i[y+p]){if(!t.readBit(o,18)){l[y]++,l[y+f]++,l[y+u]++,l[y+p]++;continue}0!=(x=t.readBit(o,17)<<1|t.readBit(o,17))&&(C=m+x,w+=x*r),b=this.decodeSignBit(C,g,w),s[w]=b,a[w]=1,this.setNeighborsSignificance(C,g,w),h[w]|=2,w=y;for(var P=m;P<=C;P++,w+=r)l[w]++;x++}for(C=m+x;C<e;C++,w+=r)if(!a[w]&&0==(1&h[w])){var k=c[i[w]];1===t.readBit(o,k)&&(b=this.decodeSignBit(C,g,w),s[w]=b,a[w]=1,this.setNeighborsSignificance(C,g,w),h[w]|=2),l[w]++}}}},checkSegmentationSymbol:function(){var e=this.decoder,t=this.contexts;if(10!=(e.readBit(t,17)<<3|e.readBit(t,17)<<2|e.readBit(t,17)<<1|e.readBit(t,17)))throw new Error("JPX Error: Invalid segmentation symbol")}},n}(),A=function(){function e(){}return e.prototype.calculate=function(e,t,r){for(var n=e[0],i=1,a=e.length;i<a;i++)n=this.iterate(n,e[i],t,r);return n},e.prototype.extend=function(e,t,r){var n=t-1,i=t+1,a=t+r-2,s=t+r;e[n--]=e[i++],e[s++]=e[a--],e[n--]=e[i++],e[s++]=e[a--],e[n--]=e[i++],e[s++]=e[a--],e[n]=e[i],e[s]=e[a]},e.prototype.iterate=function(e,t,r,n){var i,a,s,o,c,l,h=e.width,f=e.height,u=e.items,p=t.width,m=t.height,d=t.items;for(s=0,i=0;i<f;i++)for(o=2*i*p,a=0;a<h;a++,s++,o+=2)d[o]=u[s];u=e.items=null;var v=new Float32Array(p+8);if(1===p){if(0!=(1&r))for(l=0,s=0;l<m;l++,s+=p)d[s]*=.5}else for(l=0,s=0;l<m;l++,s+=p)v.set(d.subarray(s,s+p),4),this.extend(v,4,p),this.filter(v,4,p),d.set(v.subarray(4,4+p),s);var g=16,b=[];for(i=0;i<g;i++)b.push(new Float32Array(m+8));var y,x=0;if(e=4+m,1===m){if(0!=(1&n))for(c=0;c<p;c++)d[c]*=.5}else for(c=0;c<p;c++){if(0===x){for(g=Math.min(p-c,g),s=c,o=4;o<e;s+=p,o++)for(y=0;y<g;y++)b[y][o]=d[s+y];x=g}var w=b[--x];if(this.extend(w,4,m),this.filter(w,4,m),0===x)for(s=c-g+1,o=4;o<e;s+=p,o++)for(y=0;y<g;y++)d[s+y]=b[y][o]}return{width:p,height:m,items:d}},e}(),D=function(){function e(){A.call(this)}return e.prototype=Object.create(A.prototype),e.prototype.filter=function(e,t,r){var n,i,a,s,o=r>>1,c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,f=.443506852043971,u=1.230174104914001;for(n=(t|=0)-3,i=o+4;i--;n+=2)e[n]*=.8128930661159609;for(a=f*e[(n=t-2)-1],i=o+3;i--&&(s=f*e[n+1],e[n]=u*e[n]-a-s,i--);n+=2)a=f*e[(n+=2)+1],e[n]=u*e[n]-a-s;for(a=h*e[(n=t-1)-1],i=o+2;i--&&(s=h*e[n+1],e[n]-=a+s,i--);n+=2)a=h*e[(n+=2)+1],e[n]-=a+s;for(a=l*e[(n=t)-1],i=o+1;i--&&(s=l*e[n+1],e[n]-=a+s,i--);n+=2)a=l*e[(n+=2)+1],e[n]-=a+s;if(0!==o)for(a=c*e[(n=t+1)-1],i=o;i--&&(s=c*e[n+1],e[n]-=a+s,i--);n+=2)a=c*e[(n+=2)+1],e[n]-=a+s},e}(),L=function(){function e(){A.call(this)}return e.prototype=Object.create(A.prototype),e.prototype.filter=function(e,t,r){var n,i,a=r>>1;for(n=t|=0,i=a+1;i--;n+=2)e[n]-=e[n-1]+e[n+1]+2>>2;for(n=t+1,i=a;i--;n+=2)e[n]+=e[n-1]+e[n+1]>>1},e}();return t}(),i=function(){function e(){}function t(e,t,r){this.data=e,this.start=t,this.end=r}function n(e,t,r){var n=e.getContexts(t),i=1;function a(e){for(var t=0,a=0;a<e;a++){var s=r.readBit(n,i);i=i<256?i<<1|s:511&(i<<1|s)|256,t=t<<1|s}return t>>>0}var s=a(1),o=a(1)?a(1)?a(1)?a(1)?a(1)?a(32)+4436:a(12)+340:a(8)+84:a(6)+20:a(4)+4:a(2);return 0===s?o:o>0?-o:null}function i(e,t,r){for(var n=e.getContexts("IAID"),i=1,a=0;a<r;a++)i=i<<1|t.readBit(n,i);return r<31?i&(1<<r)-1:2147483647&i}e.prototype={getContexts:function(e){return e in this?this[e]:this[e]=new Int8Array(65536)}},t.prototype={get decoder(){return l(this,"decoder",new r(this.data,this.start,this.end))},get contextCache(){return l(this,"contextCache",new e)}};var f=["SymbolDictionary",null,null,null,"IntermediateTextRegion",null,"ImmediateTextRegion","ImmediateLosslessTextRegion",null,null,null,null,null,null,null,null,"patternDictionary",null,null,null,"IntermediateHalftoneRegion",null,"ImmediateHalftoneRegion","ImmediateLosslessHalftoneRegion",null,null,null,null,null,null,null,null,null,null,null,null,"IntermediateGenericRegion",null,"ImmediateGenericRegion","ImmediateLosslessGenericRegion","IntermediateGenericRefinementRegion",null,"ImmediateGenericRefinementRegion","ImmediateLosslessGenericRefinementRegion",null,null,null,null,"PageInformation","EndOfPage","EndOfStripe","EndOfFile","Profiles","Tables",null,null,null,null,null,null,null,null,"Extension"],u=[[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:2,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:2,y:-1},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}],[{x:-1,y:-2},{x:0,y:-2},{x:1,y:-2},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-2,y:0},{x:-1,y:0}],[{x:-3,y:-1},{x:-2,y:-1},{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-4,y:0},{x:-3,y:0},{x:-2,y:0},{x:-1,y:0}]],p=[{coding:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:1,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:-1,y:1},{x:0,y:1},{x:1,y:1}]},{coding:[{x:-1,y:-1},{x:0,y:-1},{x:1,y:-1},{x:-1,y:0}],reference:[{x:0,y:-1},{x:-1,y:0},{x:0,y:0},{x:1,y:0},{x:0,y:1},{x:1,y:1}]}],m=[39717,1941,229,405],d=[32,8];function v(e,t,r,n,i,a,s,o){if(e&&h("JBIG2 error: MMR encoding is not supported"),0===n&&!a&&!i&&4===s.length&&3===s[0].x&&-1===s[0].y&&-3===s[1].x&&-1===s[1].y&&2===s[2].x&&-2===s[2].y&&-2===s[3].x&&-2===s[3].y)return function(e,t,r){var n,i,a,s,o,c,l,h=r.decoder,f=r.contextCache.getContexts("GB"),u=[];for(i=0;i<t;i++)for(o=u[i]=new Uint8Array(e),c=i<1?o:u[i-1],n=(l=i<2?o:u[i-2])[0]<<13|l[1]<<12|l[2]<<11|c[0]<<7|c[1]<<6|c[2]<<5|c[3]<<4,a=0;a<e;a++)o[a]=s=h.readBit(f,n),n=(31735&n)<<1|(a+3<e?l[a+3]<<11:0)|(a+4<e?c[a+4]<<4:0)|s;return u}(t,r,o);var c=!!a,l=u[n].concat(s);l.sort((function(e,t){return e.y-t.y||e.x-t.x}));var f,p,d=l.length,v=new Int8Array(d),g=new Int8Array(d),b=[],y=0,x=0,w=0,C=0;for(p=0;p<d;p++)v[p]=l[p].x,g[p]=l[p].y,x=Math.min(x,l[p].x),w=Math.max(w,l[p].x),C=Math.min(C,l[p].y),p<d-1&&l[p].y===l[p+1].y&&l[p].x===l[p+1].x-1?y|=1<<d-1-p:b.push(p);var P=b.length,k=new Int8Array(P),I=new Int8Array(P),M=new Uint16Array(P);for(f=0;f<P;f++)p=b[f],k[f]=l[p].x,I[f]=l[p].y,M[f]=1<<d-1-p;for(var S,T,A,D,L,z=-x,O=-C,F=t-w,B=m[n],q=new Uint8Array(t),E=[],R=o.decoder,U=o.contextCache.getContexts("GB"),X=0,_=0,J=0;J<r;J++)if(i&&(X^=R.readBit(U,B)))E.push(q);else for(q=new Uint8Array(q),E.push(q),S=0;S<t;S++)if(c&&a[J][S])q[S]=0;else{if(S>=z&&S<F&&J>=O)for(_=_<<1&y,p=0;p<P;p++)T=J+I[p],A=S+k[p],(D=E[T][A])&&(_|=D=M[p]);else for(_=0,L=d-1,p=0;p<d;p++,L--)(A=S+v[p])>=0&&A<t&&(T=J+g[p])>=0&&(D=E[T][A])&&(_|=D<<L);var H=R.readBit(U,_);q[S]=H}return E}function g(e,t,r,n,i,a,s,o,c){var l=p[r].coding;0===r&&(l=l.concat([o[0]]));var f,u=l.length,m=new Int32Array(u),v=new Int32Array(u);for(f=0;f<u;f++)m[f]=l[f].x,v[f]=l[f].y;var g=p[r].reference;0===r&&(g=g.concat([o[1]]));var b=g.length,y=new Int32Array(b),x=new Int32Array(b);for(f=0;f<b;f++)y[f]=g[f].x,x[f]=g[f].y;for(var w=n[0].length,C=n.length,P=d[r],k=[],I=c.decoder,M=c.contextCache.getContexts("GR"),S=0,T=0;T<t;T++){s&&(S^=I.readBit(M,P))&&h("JBIG2 error: prediction is not supported");var A=new Uint8Array(e);k.push(A);for(var D=0;D<e;D++){var L,z,O=0;for(f=0;f<u;f++)L=T+v[f],z=D+m[f],L<0||z<0||z>=e?O<<=1:O=O<<1|k[L][z];for(f=0;f<b;f++)L=T+x[f]+a,z=D+y[f]+i,L<0||L>=C||z<0||z>=w?O<<=1:O=O<<1|n[L][z];var F=I.readBit(M,O);A[D]=F}}return k}function b(e,t,r,a,s,o,c,l,f,u,p,m,d,v,b,y,x){e&&h("JBIG2 error: huffman is not supported");var w,C,P=[];for(w=0;w<a;w++){if(C=new Uint8Array(r),s)for(var k=0;k<r;k++)C[k]=s;P.push(C)}var I=x.decoder,M=x.contextCache,S=-n(M,"IADT",I),T=0;for(w=0;w<o;){S+=n(M,"IADT",I);for(var A=T+=n(M,"IAFS",I);;){var D=c*S+(1===c?0:n(M,"IAIT",I)),L=i(M,I,f),z=t&&n(M,"IARI",I),O=l[L],F=O[0].length,B=O.length;if(z){var q=n(M,"IARDW",I),E=n(M,"IARDH",I);O=g(F+=q,B+=E,b,O,(q>>1)+n(M,"IARDX",I),(E>>1)+n(M,"IARDY",I),!1,y,x)}var R,U,X,_=D-(1&m?0:B),J=A-(2&m?F:0);if(u){for(R=0;R<B;R++)if(C=P[J+R]){X=O[R];var H=Math.min(r-_,F);switch(d){case 0:for(U=0;U<H;U++)C[_+U]|=X[U];break;case 2:for(U=0;U<H;U++)C[_+U]^=X[U];break;default:h("JBIG2 error: operator "+d+" is not supported")}}A+=B-1}else{for(U=0;U<B;U++)if(C=P[_+U])switch(X=O[U],d){case 0:for(R=0;R<F;R++)C[J+R]|=X[R];break;case 2:for(R=0;R<F;R++)C[J+R]^=X[R];break;default:h("JBIG2 error: operator "+d+" is not supported")}A+=F-1}w++;var Y=n(M,"IADS",I);if(null===Y)break;A+=Y+p}}return P}function y(e,t){var r={};r.number=c(e,t);var n=e[t+4],i=63&n;f[i]||h("JBIG2 error: invalid segment type: "+i),r.type=i,r.typeName=f[i],r.deferredNonRetain=!!(128&n);var a=!!(64&n),s=e[t+5],l=s>>5&7,u=[31&s],p=t+6;if(7===s){l=536870911&c(e,p-1),p+=3;var m=l+7>>3;for(u[0]=e[p++];--m>0;)u.push(e[p++])}else 5!==s&&6!==s||h("JBIG2 error: invalid referred-to flags");r.retainBits=u;var d,v,g=r.number<=256?1:r.number<=65536?2:4,b=[];for(d=0;d<l;d++){var y=1===g?e[p]:2===g?o(e,p):c(e,p);b.push(y),p+=g}if(r.referredTo=b,a?(r.pageAssociation=c(e,p),p+=4):r.pageAssociation=e[p++],r.length=c(e,p),p+=4,4294967295===r.length)if(38===i){var x=w(e,p),P=!!(1&e[p+C]),k=new Uint8Array(6);for(P||(k[0]=255,k[1]=172),k[2]=x.height>>>24&255,k[3]=x.height>>16&255,k[4]=x.height>>8&255,k[5]=255&x.height,d=p,v=e.length;d<v;d++){for(var I=0;I<6&&k[I]===e[d+I];)I++;if(6===I){r.length=d+6;break}}4294967295===r.length&&h("JBIG2 error: segment end was not found")}else h("JBIG2 error: invalid unknown segment length");return r.headerEnd=p,r}function x(e,t,r,n){for(var i=[],a=r;a<n;){var s=y(t,a);a=s.headerEnd;var o={header:s,data:t};if(e.randomAccess||(o.start=a,a+=s.length,o.end=a),i.push(o),51===s.type)break}if(e.randomAccess)for(var c=0,l=i.length;c<l;c++)i[c].start=a,a+=i[c].header.length,i[c].end=a;return i}function w(e,t){return{width:c(e,t),height:c(e,t+4),x:c(e,t+8),y:c(e,t+12),combinationOperator:7&e[t+16]}}var C=17;function P(e,t){var r,n,i,a,l=e.header,f=e.data,u=e.start,p=e.end;switch(l.type){case 0:var m={},d=o(f,u);if(m.huffman=!!(1&d),m.refinement=!!(2&d),m.huffmanDHSelector=d>>2&3,m.huffmanDWSelector=d>>4&3,m.bitmapSizeSelector=d>>6&1,m.aggregationInstancesSelector=d>>7&1,m.bitmapCodingContextUsed=!!(256&d),m.bitmapCodingContextRetained=!!(512&d),m.template=d>>10&3,m.refinementTemplate=d>>12&1,u+=2,!m.huffman){for(a=0===m.template?4:1,n=[],i=0;i<a;i++)n.push({x:s(f,u),y:s(f,u+1)}),u+=2;m.at=n}if(m.refinement&&!m.refinementTemplate){for(n=[],i=0;i<2;i++)n.push({x:s(f,u),y:s(f,u+1)}),u+=2;m.refinementAt=n}m.numberOfExportedSymbols=c(f,u),u+=4,m.numberOfNewSymbols=c(f,u),u+=4,r=[m,l.number,l.referredTo,f,u,p];break;case 6:case 7:var v={};v.info=w(f,u);var g=o(f,u+=C);if(u+=2,v.huffman=!!(1&g),v.refinement=!!(2&g),v.stripSize=1<<(g>>2&3),v.referenceCorner=g>>4&3,v.transposed=!!(64&g),v.combinationOperator=g>>7&3,v.defaultPixelValue=g>>9&1,v.dsOffset=g<<17>>27,v.refinementTemplate=g>>15&1,v.huffman){var b=o(f,u);u+=2,v.huffmanFS=3&b,v.huffmanDS=b>>2&3,v.huffmanDT=b>>4&3,v.huffmanRefinementDW=b>>6&3,v.huffmanRefinementDH=b>>8&3,v.huffmanRefinementDX=b>>10&3,v.huffmanRefinementDY=b>>12&3,v.huffmanRefinementSizeSelector=!!(14&b)}if(v.refinement&&!v.refinementTemplate){for(n=[],i=0;i<2;i++)n.push({x:s(f,u),y:s(f,u+1)}),u+=2;v.refinementAt=n}v.numberOfSymbolInstances=c(f,u),u+=4,v.huffman&&h("JBIG2 error: huffman is not supported"),r=[v,l.referredTo,f,u,p];break;case 38:case 39:var y={};y.info=w(f,u),u+=C;var x=f[u++];if(y.mmr=!!(1&x),y.template=x>>1&3,y.prediction=!!(8&x),!y.mmr){for(a=0===y.template?4:1,n=[],i=0;i<a;i++)n.push({x:s(f,u),y:s(f,u+1)}),u+=2;y.at=n}r=[y,f,u,p];break;case 48:var P={width:c(f,u),height:c(f,u+4),resolutionX:c(f,u+8),resolutionY:c(f,u+12)};4294967295===P.height&&delete P.height;var k=f[u+16];o(f,u+17),P.lossless=!!(1&k),P.refinement=!!(2&k),P.defaultPixelValue=k>>2&1,P.combinationOperator=k>>3&3,P.requiresBuffer=!!(32&k),P.combinationOperatorOverride=!!(64&k),r=[P];break;case 49:case 50:case 51:case 62:break;default:h("JBIG2 error: segment type "+l.typeName+"("+l.type+") is not implemented")}var I="on"+l.typeName;I in t&&t[I].apply(t,r)}function k(e,t){for(var r=0,n=e.length;r<n;r++)P(e[r],t)}function I(){}function M(){}return I.prototype={onPageInformation:function(e){this.currentPageInfo=e;var t=e.width+7>>3,r=new Uint8Array(t*e.height);if(e.defaultPixelValue)for(var n=0,i=r.length;n<i;n++)r[n]=255;this.buffer=r},drawBitmap:function(e,t){var r,n,i,a,s=this.currentPageInfo,o=e.width,c=e.height,l=s.width+7>>3,f=s.combinationOperatorOverride?e.combinationOperator:s.combinationOperator,u=this.buffer,p=128>>(7&e.x),m=e.y*l+(e.x>>3);switch(f){case 0:for(r=0;r<c;r++){for(i=p,a=m,n=0;n<o;n++)t[r][n]&&(u[a]|=i),(i>>=1)||(i=128,a++);m+=l}break;case 2:for(r=0;r<c;r++){for(i=p,a=m,n=0;n<o;n++)t[r][n]&&(u[a]^=i),(i>>=1)||(i=128,a++);m+=l}break;default:h("JBIG2 error: operator "+f+" is not supported")}},onImmediateGenericRegion:function(e,r,n,i){var a=e.info,s=new t(r,n,i),o=v(e.mmr,a.width,a.height,e.template,e.prediction,null,e.at,s);this.drawBitmap(a,o)},onImmediateLosslessGenericRegion:function(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function(e,r,s,o,c,l){e.huffman&&h("JBIG2 error: huffman is not supported");var f=this.symbols;f||(this.symbols=f={});for(var u=[],p=0,m=s.length;p<m;p++)u=u.concat(f[s[p]]);var d=new t(o,c,l);f[r]=function(e,t,r,s,o,c,l,f,u,p,m){e&&h("JBIG2 error: huffman is not supported");for(var d=[],y=0,x=a(r.length+s),w=m.decoder,C=m.contextCache;d.length<s;){y+=n(C,"IADH",w);for(var P=0;;){var k,I=n(C,"IADW",w);if(null===I)break;if(P+=I,t){var M=n(C,"IAAI",w);if(M>1)k=b(e,t,P,y,0,M,1,r.concat(d),x,0,0,1,0,0,u,p,m);else{var S=i(C,w,x),T=n(C,"IARDX",w),A=n(C,"IARDY",w);k=g(P,y,u,S<r.length?r[S]:d[S-r.length],T,A,!1,p,m)}}else k=v(!1,P,y,l,!1,null,f,m);d.push(k)}}for(var D=[],L=[],z=!1,O=r.length+s;L.length<O;){for(var F=n(C,"IAEX",w);F--;)L.push(z);z=!z}for(var B=0,q=r.length;B<q;B++)L[B]&&D.push(r[B]);for(var E=0;E<s;B++,E++)L[B]&&D.push(d[E]);return D}(e.huffman,e.refinement,u,e.numberOfNewSymbols,e.numberOfExportedSymbols,0,e.template,e.at,e.refinementTemplate,e.refinementAt,d)},onImmediateTextRegion:function(e,r,n,i,s){for(var o=e.info,c=this.symbols,l=[],h=0,f=r.length;h<f;h++)l=l.concat(c[r[h]]);var u=a(l.length),p=new t(n,i,s),m=b(e.huffman,e.refinement,o.width,o.height,e.defaultPixelValue,e.numberOfSymbolInstances,e.stripSize,l,u,e.transposed,e.dsOffset,e.referenceCorner,e.combinationOperator,0,e.refinementTemplate,e.refinementAt,p);this.drawBitmap(o,m)},onImmediateLosslessTextRegion:function(){this.onImmediateTextRegion.apply(this,arguments)}},M.prototype={parseChunks:function(e){return function(e){for(var t=new I,r=0,n=e.length;r<n;r++){var i=e[r];k(x({},i.data,i.start,i.end),t)}return t}(e)}},M}();function a(e){for(var t=1,r=0;e>t;)t<<=1,r++;return r}function s(e,t){return e[t]<<24>>24}function o(e,t){return e[t]<<8|e[t+1]}function c(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!1}),r}var h=function(){throw console.error.apply(console,arguments),new Error("PDFJS error: "+arguments[0])},f=function(){console.warn.apply(console,arguments)},u=function(){console.info.apply(console,arguments)};i.prototype.parse=function(e){var t=0,r=e.length;151===e[t]&&74===e[t+1]&&66===e[t+2]&&50===e[t+3]&&13===e[t+4]&&10===e[t+5]&&26===e[t+6]&&10===e[t+7]||h("JBIG2 error: invalid header");var n={};t+=8;var i=e[t++];n.randomAccess=!(1&i),2&i||(n.numberOfPages=c(e,t),t+=4);for(var a=this.parseChunks([{data:e,start:t,end:r}]),s=a.currentPageInfo.width,o=a.currentPageInfo.height,l=a.buffer,f=(e=new Uint8Array(s*o),0),u=0,p=0;p<o;p++)for(var m,d=0,v=0;v<s;v++)d||(d=128,m=l[u++]),e[f++]=m&d?0:255,d>>=1;this.width=s,this.height=o,this.data=e},e.JpegImage=t,e.JpxImage=n,e.Jbig2Image=i}(e||(e={}));var r=e.JpegImage,n=e.JpxImage,i=e.Jbig2Image;