{"version":3,"sources":["jsdelivr-header.js","/npm/utif@1.1.0/UTIF.js"],"names":[],"mappings":"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","file":"/npm/utif@1.1.0/UTIF.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/utif@1.1.0/UTIF.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\n;(function(){\nvar UTIF = {};\n\n// Make available for import by `require()`\nif (typeof module == \"object\") {module.exports = UTIF;}\nelse {window.UTIF = UTIF;}\n\nvar pako, JpegDecoder;\nif (typeof require == \"function\") {pako = require(\"pako\"); JpegDecoder = require(\"jpgjs\").JpegDecoder;}\nelse {pako = window.pako; JpegDecoder = window.JpegDecoder;}\n\nfunction log() { if (typeof process==\"undefined\" || process.env.NODE_ENV==\"development\") console.log.apply(console, arguments);  }\n\n(function(UTIF, pako){\n\nUTIF.encodeImage = function(rgba, w, h, metadata)\n{\n\tvar idf = { \"t256\":[w], \"t257\":[h], \"t258\":[8,8,8,8], \"t259\":[1], \"t262\":[2], \"t273\":[1000], // strips offset\n\t\t\t\t\"t277\":[4], \"t278\":[h], /* rows per strip */          \"t279\":[w*h*4], // strip byte counts\n\t\t\t\t\"t282\":[1], \"t283\":[1], \"t284\":[1], \"t286\":[0], \"t287\":[0], \"t296\":[1], \"t305\": [\"Photopea (UTIF.js)\"], \"t338\":[1]\n\t\t};\n\tif (metadata) {\n\t\tfor (var i in metadata) {\n\t\t\tidf[i] = metadata[i];\n\t\t}\n\t}\n\tvar prfx = new Uint8Array(UTIF.encode([idf]));\n\tvar img = new Uint8Array(rgba);\n\tvar data = new Uint8Array(1000+w*h*4);\n\tfor(var i=0; i<prfx.length; i++) data[i] = prfx[i];\n\tfor(var i=0; i<img .length; i++) data[1000+i] = img[i];\n\treturn data.buffer;\n}\n\nUTIF.encode = function(ifds)\n{\n\tvar data = new Uint8Array(20000), offset = 4, bin = UTIF._binBE;\n\tdata[0]=77;  data[1]=77;  data[3]=42;\n\n\tvar ifdo = 8;\n\tbin.writeUint(data, offset, ifdo);  offset+=4;\n\tfor(var i=0; i<ifds.length; i++)\n\t{\n\t\tvar noffs = UTIF._writeIFD(bin, data, ifdo, ifds[i]);\n\t\tifdo = noffs[1];\n\t\tif(i<ifds.length-1) bin.writeUint(data, noffs[0], ifdo);\n\t}\n\treturn data.slice(0, ifdo).buffer;\n}\n//UTIF.encode._writeIFD\n\nUTIF.decode = function(buff)\n{\n\tUTIF.decode._decodeG3.allow2D = null;\n\tvar data = new Uint8Array(buff), offset = 0;\n\n\tvar id = UTIF._binBE.readASCII(data, offset, 2);  offset+=2;\n\tvar bin = id==\"II\" ? UTIF._binLE : UTIF._binBE;\n\tvar num = bin.readUshort(data, offset);  offset+=2;\n\n\tvar ifdo = bin.readUint(data, offset);  offset+=4;\n\tvar ifds = [];\n\twhile(true)\n\t{\n\t\tvar noff = UTIF._readIFD(bin, data, ifdo, ifds);\n\t\t//var ifd = ifds[ifds.length-1];   if(ifd[\"t34665\"]) {  ifd.exifIFD = [];  UTIF._readIFD(bin, data, ifd[\"t34665\"][0], ifd.exifIFD);  }\n\t\tifdo = bin.readUint(data, noff);\n\t\tif(ifdo==0) break;\n\t}\n\n\tif(ifds[0][\"t256\"]==null) return ifds;\t// EXIF files don't have TIFF tags\n\n\tfor(var ii=0; ii<ifds.length; ii++)\n\t{\n\t\tvar img = ifds[ii];\n\t\timg.width  = img[\"t256\"][0];  delete img[\"t256\"];\n\t\timg.height = img[\"t257\"][0];  delete img[\"t257\"];\n\n\t\tvar cmpr = img[\"t259\"][0];  delete img[\"t259\"];\n\t\tvar fo = img[\"t266\"] ? img[\"t266\"][0] : 1;  delete img[\"t266\"];\n\t\tif(img[\"t284\"] && img[\"t284\"][0]==2) log(\"PlanarConriguration 2 should not be used!\");\n\n\t\tvar bipp = (img[\"t258\"]?img[\"t258\"][0]:1) * (img[\"t277\"]?img[\"t277\"][0]:1);  // bits per pixel\n\t\tvar soff = img[\"t273\"];  if(soff==null) soff = img[\"t324\"];\n\t\tvar bcnt = img[\"t279\"];  if(cmpr==1 && soff.length==1) bcnt = [(img.height*img.width*bipp)>>3];  if(bcnt==null) bcnt = img[\"t325\"];\n\t\tvar bytes = new Uint8Array((img.width*img.height*bipp)>>3), bilen = 0;\n\n\t\tif(img[\"t322\"]!=null) // tiled\n\t\t{\n\t\t\tvar tw = img[\"t322\"][0], th = img[\"t323\"][0];\n\t\t\tvar tx = Math.floor((img.width  + tw - 1) / tw);\n\t\t\tvar ty = Math.floor((img.height + th - 1) / th);\n\t\t\tvar tbuff = new Uint8Array(tw*th*bipp>>3);\n\t\t\tfor(var y=0; y<ty; y++)\n\t\t\t\tfor(var x=0; x<tx; x++)\n\t\t\t\t{\n\t\t\t\t\tvar i = y*tx+x;  for(var j=0; j<tbuff.length; j++) tbuff[j]=0;\n\t\t\t\t\tUTIF.decode._decompress(img, data, soff[i], bcnt[i], cmpr, tbuff, 0, fo);\n\t\t\t\t\tUTIF._copyTile(tbuff, (tw*bipp)>>3, th, bytes, (img.width*bipp)>>3, img.height, (x*tw*bipp)>>3, y*th);\n\t\t\t\t}\n\t\t\tbilen = bytes.length<<3;\n\t\t}\n\t\telse\t// stripped\n\t\t{\n\t\t\tvar rps = img[\"t278\"] ? img[\"t278\"][0] : img.height;   rps = Math.min(rps, img.height);\n\t\t\tfor(var i=0; i<soff.length; i++)\n\t\t\t{\n\t\t\t\tUTIF.decode._decompress(img, data, soff[i], bcnt[i], cmpr, bytes, bilen>>3, fo);\n\t\t\t\tbilen += (img.width * bipp * rps);\n\t\t\t}\n\t\t\tbilen = Math.min(bilen, bytes.length<<3);\n\t\t}\n\t\timg.data = new Uint8Array(bytes.buffer, 0, bilen>>3);\n\t}\n\treturn ifds;\n}\n\nUTIF.decode._decompress = function(img, data, off, len, cmpr, tgt, toff, fo)  // fill order\n{\n\tif(false) {}\n\telse if(cmpr==1) for(var j=0; j<len; j++) tgt[toff+j] = data[off+j];\n\telse if(cmpr==3) UTIF.decode._decodeG3 (data, off, len, tgt, toff, img.width, fo);\n\telse if(cmpr==4) UTIF.decode._decodeG4 (data, off, len, tgt, toff, img.width, fo);\n\telse if(cmpr==5) UTIF.decode._decodeLZW(data, off, tgt, toff);\n\telse if(cmpr==7) UTIF.decode._decodeNewJPEG(img, data, off, len, tgt, toff);\n\telse if(cmpr==8) {  var src = new Uint8Array(data.buffer,off,len);  var bin = pako[\"inflate\"](src);  log(bin.length); for(var i=0; i<bin.length; i++) tgt[toff+i]=bin[i];  }\n\telse if(cmpr==32773) UTIF.decode._decodePackBits(data, off, len, tgt, toff);\n\telse if(cmpr==32809) UTIF.decode._decodeThunder (data, off, len, tgt, toff);\n\telse log(\"Unknown compression\", cmpr);\n\n\tif(img[\"t317\"] && img[\"t317\"][0]==2)\n\t{\n\t\tvar noc = (img[\"t277\"]?img[\"t277\"][0]:1), h = (img[\"t278\"] ? img[\"t278\"][0] : img.height), bpr = img.width*noc;\n\t\tfor(var y=0; y<h; y++) {\n\t\t\tvar ntoff = toff+y*bpr;\n\t\t\tfor(var j=noc; j<bpr; j++) tgt[ntoff+j] = (tgt[ntoff+j] + tgt[ntoff+j-noc])&255;\n\t\t}\n\t}\n}\n\nUTIF.decode._decodeNewJPEG = function(img, data, off, len, tgt, toff)\n{\n    if (typeof JpegDecoder==\"undefined\") { log(\"jpg.js required for handling JPEG compressed images\");  return;  }\n\n    var SOI = 216, EOI = 217, boff = 0;\n    var tables = img[\"t347\"], tlen = tables ? tables.length : 0, buff = new Uint8Array(tlen + len);\n\n    if (tables) {\n        for (var i=0; i<(tlen-1); i++) {\n            // Skip EOI marker from JPEGTables\n            if (tables[i]==255 && tables[i+1]==EOI) break;\n            buff[boff++] = tables[i];\n        }\n\n        // Skip SOI marker from data\n        var byte1 = data[off], byte2 = data[off + 1];\n        if (byte1!=255 || byte2!=SOI) {\n            buff[boff++] = byte1;\n            buff[boff++] = byte2;\n        }\n\n        for (var i=2; i<len; i++) buff[boff++] = data[off+i];\n    }\n\telse\n        for (var i=0; i<len; i++) buff[boff++] = data[off+i];\n\n    var parser = new JpegDecoder();  parser.parse(buff);\n    var decoded = parser.getData(parser.width, parser.height);\n    for (var i=0; i<decoded.length; i++) tgt[toff + i] = decoded[i];\n\n    // PhotometricInterpretation is 6 (YCbCr) for JPEG, but after decoding we populate data in\n    // RGB format, so updating the tag value\n    img[\"t262\"][0] = 2;\n}\n\nUTIF.decode._decodePackBits = function(data, off, len, tgt, toff)\n{\n\tvar sa = new Int8Array(data.buffer), ta = new Int8Array(tgt.buffer), lim = off+len;\n\twhile(off<lim) {\n\t\tvar n = sa[off];  off++;\n\t\tif(n>=0  && n<128)    for(var i=0; i< n+1; i++) {  ta[toff]=sa[off];  toff++;  off++;   }\n\t\tif(n>=-127 && n<0) {  for(var i=0; i<-n+1; i++) {  ta[toff]=sa[off];  toff++;           }  off++;  }\n\t}\n}\nUTIF.decode._decodeThunder = function(data, off, len, tgt, toff)\n{\n\tvar d2 = [ 0, 1, 0, -1 ],  d3 = [ 0, 1, 2, 3, 0, -3, -2, -1 ];\n\tvar lim = off+len, qoff = toff*2, px = 0;\n\twhile(off<lim) {\n\t\tvar b = data[off], msk = (b>>6), n = (b&63);  off++;\n\t\tif(msk==3) { px=(n&15);  tgt[qoff>>1] |= (px<<(4*(1-qoff&1)));  qoff++;   }\n\t\tif(msk==0) for(var i=0; i<n; i++) {  tgt[qoff>>1] |= (px<<(4*(1-qoff&1)));  qoff++;   }\n\t\tif(msk==2) for(var i=0; i<2; i++) {  var d=(n>>(3*(1-i)))&7;  if(d!=4) { px+=d3[d];  tgt[qoff>>1] |= (px<<(4*(1-qoff&1)));  qoff++; }  }\n\t\tif(msk==1) for(var i=0; i<3; i++) {  var d=(n>>(2*(2-i)))&3;  if(d!=2) { px+=d2[d];  tgt[qoff>>1] |= (px<<(4*(1-qoff&1)));  qoff++; }  }\n\t}\n}\n\nUTIF.decode._dmap = { \"1\":0,\"011\":1,\"000011\":2,\"0000011\":3, \"010\":-1,\"000010\":-2,\"0000010\":-3  };\nUTIF.decode._lens = ( function() {\n\tvar addKeys = function(lens, arr, i0, inc) {  for(var i=0; i<arr.length; i++) lens[arr[i]] = i0 + i*inc;  }\n\n\tvar termW = \"00110101,000111,0111,1000,1011,1100,1110,1111,10011,10100,00111,01000,001000,000011,110100,110101,\" // 15\n\t+ \"101010,101011,0100111,0001100,0001000,0010111,0000011,0000100,0101000,0101011,0010011,0100100,0011000,00000010,00000011,00011010,\" // 31\n\t+ \"00011011,00010010,00010011,00010100,00010101,00010110,00010111,00101000,00101001,00101010,00101011,00101100,00101101,00000100,00000101,00001010,\" // 47\n\t+ \"00001011,01010010,01010011,01010100,01010101,00100100,00100101,01011000,01011001,01011010,01011011,01001010,01001011,00110010,00110011,00110100\";\n\n\tvar termB = \"0000110111,010,11,10,011,0011,0010,00011,000101,000100,0000100,0000101,0000111,00000100,00000111,000011000,\" // 15\n\t+ \"0000010111,0000011000,0000001000,00001100111,00001101000,00001101100,00000110111,00000101000,00000010111,00000011000,000011001010,000011001011,000011001100,000011001101,000001101000,000001101001,\" // 31\n\t+ \"000001101010,000001101011,000011010010,000011010011,000011010100,000011010101,000011010110,000011010111,000001101100,000001101101,000011011010,000011011011,000001010100,000001010101,000001010110,000001010111,\" // 47\n\t+ \"000001100100,000001100101,000001010010,000001010011,000000100100,000000110111,000000111000,000000100111,000000101000,000001011000,000001011001,000000101011,000000101100,000001011010,000001100110,000001100111\";\n\n\tvar makeW = \"11011,10010,010111,0110111,00110110,00110111,01100100,01100101,01101000,01100111,011001100,011001101,011010010,011010011,011010100,011010101,011010110,\"\n\t+ \"011010111,011011000,011011001,011011010,011011011,010011000,010011001,010011010,011000,010011011\";\n\n\tvar makeB = \"0000001111,000011001000,000011001001,000001011011,000000110011,000000110100,000000110101,0000001101100,0000001101101,0000001001010,0000001001011,0000001001100,\"\n\t+ \"0000001001101,0000001110010,0000001110011,0000001110100,0000001110101,0000001110110,0000001110111,0000001010010,0000001010011,0000001010100,0000001010101,0000001011010,\"\n\t+ \"0000001011011,0000001100100,0000001100101\";\n\n\tvar makeA = \"00000001000,00000001100,00000001101,000000010010,000000010011,000000010100,000000010101,000000010110,000000010111,000000011100,000000011101,000000011110,000000011111\";\n\n\ttermW = termW.split(\",\");  termB = termB.split(\",\");  makeW = makeW.split(\",\");  makeB = makeB.split(\",\");  makeA = makeA.split(\",\");\n\n\tvar lensW = {}, lensB = {};\n\taddKeys(lensW, termW, 0, 1);  addKeys(lensW, makeW, 64,64);  addKeys(lensW, makeA, 1792,64);\n\taddKeys(lensB, termB, 0, 1);  addKeys(lensB, makeB, 64,64);  addKeys(lensB, makeA, 1792,64);\n\treturn [lensW, lensB];    } )();\n\nUTIF.decode._decodeG4 = function(data, off, slen, tgt, toff, w, fo)\n{\n\tvar U = UTIF.decode, boff=off<<3, len=0, wrd=\"\";\t// previous starts with 1\n\tvar line=[], pline=[];  for(var i=0; i<w; i++) pline.push(0);  pline=U._makeDiff(pline);\n\tvar a0=0, a1=0, a2=0, b1=0, b2=0, clr=0;\n\tvar y=0, mode=\"\", toRead=0;\n\n\twhile((boff>>3)<off+slen)\n\t{\n\t\tb1 = U._findDiff(pline, a0+(a0==0?0:1), 1-clr), b2 = U._findDiff(pline, b1, clr);\t// could be precomputed\n\t\tvar bit =0;\n\t\tif(fo==1) bit = (data[boff>>3]>>(7-(boff&7)))&1;\n\t\tif(fo==2) bit = (data[boff>>3]>>(  (boff&7)))&1;\n\t\tboff++;  wrd+=bit;\n\t\tif(mode==\"H\") {\n\t\t\tif(U._lens[clr][wrd]!=null) {\n\t\t\t\tvar dl=U._lens[clr][wrd];  wrd=\"\";  len+=dl;\n\t\t\t\tif(dl<64) {  U._addNtimes(line,len,clr);  a0+=len;  clr=1-clr;  len=0;  toRead--;  if(toRead==0) mode=\"\";  }\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif(wrd==\"0001\")  {  wrd=\"\";  U._addNtimes(line,b2-a0,clr);  a0=b2;   }\n\t\t\tif(wrd==\"001\" )  {  wrd=\"\";  mode=\"H\";  toRead=2;  }\n\t\t\tif(U._dmap[wrd]!=null) {  a1 = b1+U._dmap[wrd];  U._addNtimes(line, a1-a0, clr);  a0=a1;  wrd=\"\";  clr=1-clr;  }\n\t\t}\n\t\tif(line.length==w && mode==\"\") {\n\t\t\tU._writeBits(line, tgt, toff*8+y*w);\n\t\t\tclr=0;  y++;  a0=0;\n\t\t\tpline=U._makeDiff(line);  line=[];\n\t\t}\n\t\t//if(wrd.length>150) {  log(wrd);  break;  throw \"e\";  }\n\t}\n}\n\nUTIF.decode._findDiff = function(line, x, clr) {  for(var i=0; i<line.length; i+=2) if(line[i]>=x && line[i+1]==clr)  return line[i];  }\nUTIF.decode._makeDiff = function(line) {\n\tvar out = [];  if(line[0]==1) out.push(0,1);\n\tfor(var i=1; i<line.length; i++) if(line[i-1]!=line[i]) out.push(i, line[i]);\n\tout.push(line.length,0,line.length,1);  return out;\n}\nUTIF.decode._decodeG3 = function(data, off, slen, tgt, toff, w, fo)\n{\n\tvar U = UTIF.decode, boff=off<<3, len=0, wrd=\"\";\n\tvar line=[], pline=[];  for(var i=0; i<w; i++) line.push(0);\n\tvar a0=0, a1=0, a2=0, b1=0, b2=0, clr=0;\n\tvar y=-1, mode=\"\", toRead=0, is1D=false;\n\twhile((boff>>3)<off+slen)\n\t{\n\t\tb1 = U._findDiff(pline, a0+(a0==0?0:1), 1-clr), b2 = U._findDiff(pline, b1, clr);\t// could be precomputed\n\t\tvar bit =0;\n\t\tif(fo==1) bit = (data[boff>>3]>>(7-(boff&7)))&1;\n\t\tif(fo==2) bit = (data[boff>>3]>>(  (boff&7)))&1;\n\t\tboff++;  wrd+=bit;\n\n\t\tif(is1D) {\n\t\t\tif(U._lens[clr][wrd]!=null) {\n\t\t\t\tvar dl=U._lens[clr][wrd];  wrd=\"\";  len+=dl;\n\t\t\t\tif(dl<64) {  U._addNtimes(line,len,clr);  clr=1-clr;  len=0;  }\n\t\t\t}\n\t\t}\n\t\telse  {\n\t\t\tif(mode==\"H\") {\n\t\t\t\tif(U._lens[clr][wrd]!=null) {\n\t\t\t\t\tvar dl=U._lens[clr][wrd];  wrd=\"\";  len+=dl;\n\t\t\t\t\tif(dl<64) {  U._addNtimes(line,len,clr);  a0+=len;  clr=1-clr;  len=0;  toRead--;  if(toRead==0) mode=\"\";  }\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(wrd==\"0001\")  {  wrd=\"\";  U._addNtimes(line,b2-a0,clr);  a0=b2;   }\n\t\t\t\tif(wrd==\"001\" )  {  wrd=\"\";  mode=\"H\";  toRead=2;  }\n\t\t\t\tif(U._dmap[wrd]!=null) {  a1 = b1+U._dmap[wrd];  U._addNtimes(line, a1-a0, clr);  a0=a1;  wrd=\"\";  clr=1-clr;  }\n\t\t\t}\n\t\t}\n\t\tif(wrd.endsWith(\"000000000001\")) { \t// needed for some files\n\t\t\tif(y>=0) U._writeBits(line, tgt, toff*8+y*w);\n\t\t\tif(fo==1) is1D = ((data[boff>>3]>>(7-(boff&7)))&1)==1;\n\t\t\tif(fo==2) is1D = ((data[boff>>3]>>(  (boff&7)))&1)==1;\n\t\t\tboff++;\n\t\t\tif(U._decodeG3.allow2D==null) U._decodeG3.allow2D=is1D;\n\t\t\tif(!U._decodeG3.allow2D) {  is1D = true;  boff--;  }\n\t\t\t//log(\"EOL\",y, \"next 1D:\", is1D);\n\t\t\twrd=\"\";  clr=0;  y++;  a0=0;\n\t\t\tpline=U._makeDiff(line);  line=[];\n\t\t}\n\t}\n\tif(line.length==w) U._writeBits(line, tgt, toff*8+y*w);\n}\n\nUTIF.decode._addNtimes = function(arr, n, val) {  for(var i=0; i<n; i++) arr.push(val);  }\n\nUTIF.decode._writeBits = function(bits, tgt, boff)\n{\n\tfor(var i=0; i<bits.length; i++) tgt[(boff+i)>>3] |= (bits[i]<<(7-((boff+i)&7)));\n}\n\nUTIF.decode._decodeLZW = function(data, off, tgt, toff)\n{\n\tvar tab = [];\n\tvar bits = 9, boff = off<<3;  // offset in bits\n\n\tvar ClearCode = 256, EoiCode = 257;\n\tvar v = 0, Code = 0, OldCode = 0;\n\twhile(true)\n\t{\n\t\tv = (data[boff>>3]<<16) | (data[(boff+8)>>3]<<8) | data[(boff+16)>>3];\n\t\tCode = ( v>>(24-(boff&7)-bits) )    &   ((1<<bits)-1);  boff+=bits;\n\t\tif(tab.length==0 && Code!=ClearCode) {  log(\"Error in LZW\");  return;  }\n\n\t\tif(Code==EoiCode) break;\n\t\tif(Code==ClearCode) {\n\t\t\tbits=9;  tab = [];  for(var i=0; i<258; i++) tab[i] = [i];\n\t\t\tv = (data[boff>>3]<<16) | (data[(boff+8)>>3]<<8) | data[(boff+16)>>3];\n\t\t\tCode = ( v>>(24-(boff&7)-bits) )    &   ((1<<bits)-1);  boff+=bits;\n\t\t\tif(Code==EoiCode) break;\n\t\t\tfor(var i=0; i<tab[Code].length; i++) tgt[toff+i] = tab[Code][i];\n\t\t\ttoff += tab[Code].length;\n\t\t\tOldCode = Code;\n\t\t}\n\t\telse if(Code<tab.length) {\n\t\t\tfor(var i=0; i<tab[Code].length; i++) tgt[toff+i] = tab[Code][i];\n\t\t\ttoff += tab[Code].length;\n\n\t\t\t// not sure about the following line ... can tab[OldCode] really be null?\n\t\t\tvar nit = tab[OldCode]==null ? [] : tab[OldCode].slice(0);  nit.push(tab[Code][0]);\n\t\t\ttab.push(nit);  if(tab.length+1==(1<<bits)) bits++;\n\n\t\t\tOldCode = Code;\n\t\t}\n\t\telse {\n\t\t\tvar OutString = tab[OldCode]==null ? [] : tab[OldCode].slice(0);  OutString.push(OutString[0]);\n\t\t\tfor(var i=0; i<OutString.length; i++) tgt[toff+i] = OutString[i];\n\t\t\ttoff += OutString.length;\n\n\t\t\ttab.push(OutString);  if(tab.length+1==(1<<bits)) bits++;\n\t\t\tOldCode = Code;\n\t\t}\n\t}\n}\n\nUTIF.tags = {254:\"NewSubfileType\",255:\"SubfileType\",256:\"ImageWidth\",257:\"ImageLength\",258:\"BitsPerSample\",259:\"Compression\",262:\"PhotometricInterpretation\",266:\"FillOrder\",\n\t\t\t 269:\"DocumentName\",270:\"ImageDescription\",271:\"Make\",272:\"Model\",273:\"StripOffset\",274:\"Orientation\",277:\"SamplesPerPixel\",278:\"RowsPerStrip\",\n\t\t\t 279:\"StripByteCounts\",280:\"MinSampleValue\",281:\"MaxSampleValue\",282:\"XResolution\",283:\"YResolution\",284:\"PlanarConfiguration\",286:\"XPosition\",287:\"YPosition\",\n\t\t\t 292:\"T4Options\",296:\"ResolutionUnit\",297:\"PageNumber\",305:\"Software\",306:\"DateTime\",315:\"Artist\",317:\"Predictor\",320:\"ColorMap\",321:\"HalftoneHints\",322:\"TileWidth\",\n\t\t\t 323:\"TileLength\",324:\"TileOffset\",325:\"TileByteCounts\",336:\"DotRange\",338:\"ExtraSample\",339:\"SampleFormat\", 347:\"JPEGTables\",\n\t\t\t 512:\"JPEGProc\",513:\"JPEGInterchangeFormat\",514:\"JPEGInterchangeFormatLength\",519:\"JPEGQTables\",520:\"JPEGDCTables\",521:\"JPEGACTables\",\n\t\t\t 529:\"YCbCrCoefficients\",530:\"YCbCrSubSampling\",531:\"YCbCrPositioning\",532:\"ReferenceBlackWhite\",33432:\"Copyright\",34377:\"Photoshop\"};\n\n\t\t\t UTIF.ttypes = {  256:3,257:3,258:3,   259:3, 262:3,  273:4,  274:3, 277:3,278:4,279:4, 282:5, 283:5, 284:3, 286:5,287:5, 296:3, 305:2, 306:2, 338:3, 513:4, 514:4, 34665:4  };\n\nUTIF._readIFD = function(bin, data, offset, ifds)\n{\n\tvar cnt = bin.readUshort(data, offset);  offset+=2;\n\tvar ifd = {};  ifds.push(ifd);\n\n\tfor(var i=0; i<cnt; i++) {\n\t\tvar tag  = bin.readUshort(data, offset);    offset+=2;\n\t\tvar type = bin.readUshort(data, offset);    offset+=2;\n\t\tvar num  = bin.readUint  (data, offset);    offset+=4;\n\t\tvar voff = bin.readUint  (data, offset);    offset+=4;\n\n\t\tvar arr = ifd[\"t\"+tag] = [];\n\t\tif(type==1 || type==7) {  for(var j=0; j<num; j++) arr.push(data[(num<5 ? offset-4 : voff)+j]); }\n\t\tif(type==2) {  arr.push( bin.readASCII(data, (num<5 ? offset-4 : voff), num-1) );  }\n\t\tif(type==3) {  for(var j=0; j<num; j++) arr.push(bin.readUshort(data, (num<3 ? offset-4 : voff)+2*j));  }\n\t\tif(type==4) {  for(var j=0; j<num; j++) arr.push(bin.readUint  (data, (num<2 ? offset-4 : voff)+4*j));  }\n\t\tif(type==5) {  for(var j=0; j<num; j++) arr.push(bin.readUint(data, voff+j*8) / bin.readUint(data,voff+j*8+4));  }\n\t\tif(arr.length==0) log(\"unknown TIFF tag type: \", type, \"num:\",num);\n\t\t//log(tag, type, arr, UTIF.tags[tag]);\n\t}\n\treturn offset;\n}\nUTIF._writeIFD = function(bin, data, offset, ifd)\n{\n\tvar keys = Object.keys(ifd);\n\tbin.writeUshort(data, offset, keys.length);  offset+=2;\n\n\tvar eoff = offset + keys.length*12 + 4;\n\n\tfor(var ki=0; ki<keys.length; ki++) {\n\t\tvar key = keys[ki];\n\t\tvar tag = parseInt(key.slice(1)), type = UTIF.ttypes[tag];  if(type==null) throw \"unknown type of tag: \"+tag;\n\t\tvar val = ifd[key];  if(type==2) val=val[0]+\"\\u0000\";  var num = val.length;\n\t\tbin.writeUshort(data, offset, tag );  offset+=2;\n\t\tbin.writeUshort(data, offset, type);  offset+=2;\n\t\tbin.writeUint  (data, offset, num );  offset+=4;\n\n\t\tvar dlen = [-1, 1,1,2,4,8][type] * num;\n\t\tvar toff = offset;\n\t\tif(dlen>4) {  bin.writeUint(data, offset, eoff);  toff=eoff;  }\n\n\t\tif(type==2) {  bin.writeASCII(data, toff, val);   }\n\t\tif(type==3) {  for(var i=0; i<num; i++) bin.writeUshort(data, toff+2*i, val[i]);    }\n\t\tif(type==4) {  for(var i=0; i<num; i++) bin.writeUint  (data, toff+4*i, val[i]);    }\n\t\tif(type==5) {  for(var i=0; i<num; i++) {  bin.writeUint(data, toff+8*i, Math.round(val[i]*10000));  bin.writeUint(data, toff+8*i+4, 10000);  }   }\n\n\t\tif(dlen>4) {  dlen += (dlen&1);  eoff += dlen;  }\n\t\toffset += 4;\n\t}\n\treturn [offset, eoff];\n}\n\nUTIF.toRGBA8 = function(out)\n{\n\tvar w = out.width, h = out.height, area = w*h, qarea = area*4, data = out.data;\n\tvar img = new Uint8Array(area*4);\n\t// 0: WhiteIsZero, 1: BlackIsZero, 2: RGB, 3: Palette color, 4: Transparency mask, 5: CMYK\n\tvar intp = out[\"t262\"][0], bps = (out[\"t258\"]?out[\"t258\"][0]:1);\n\t//log(\"interpretation: \", intp, \"bps\", bps, out);\n\tif(intp==0) {\n\t\tif(bps== 1) for(var i=0; i<area; i++) {  var qi=i<<2, px=((data[i>>3])>>(7-  (i&7)))& 1;  img[qi]=img[qi+1]=img[qi+2]=( 1-px)*255;  img[qi+3]=255;    }\n\t\tif(bps== 4) for(var i=0; i<area; i++) {  var qi=i<<2, px=((data[i>>1])>>(4-4*(i&1)))&15;  img[qi]=img[qi+1]=img[qi+2]=(15-px)* 17;  img[qi+3]=255;    }\n\t\tif(bps== 8) for(var i=0; i<area; i++) {  var qi=i<<2, px=data[i];  img[qi]=img[qi+1]=img[qi+2]=255-px;  img[qi+3]=255;    }\n\t}\n\tif(intp==1) {\n\t\tif(bps== 1) for(var i=0; i<area; i++) {  var qi=i<<2, px=((data[i>>3])>>(7-  (i&7)))&1;   img[qi]=img[qi+1]=img[qi+2]=(px)*255;  img[qi+3]=255;    }\n\t\tif(bps== 2) for(var i=0; i<area; i++) {  var qi=i<<2, px=((data[i>>2])>>(6-2*(i&3)))&3;   img[qi]=img[qi+1]=img[qi+2]=(px)* 85;  img[qi+3]=255;    }\n\t\tif(bps== 8) for(var i=0; i<area; i++) {  var qi=i<<2, px=data[i];  img[qi]=img[qi+1]=img[qi+2]=    px;  img[qi+3]=255;    }\n\t\tif(bps==16) for(var i=0; i<area; i++) {  var qi=i<<2, px=(Math.max(0,data[2*i+1]-5)<<8)|data[2*i];  img[qi]=img[qi+1]=img[qi+2]= Math.min(255,px);  img[qi+3]=255;    } // ladoga.tif\n\t}\n\tif(intp==2) {\n\t\tif(bps== 8) {\t// this needs to be simplified ... how many channels are there???\n\t\t\tif(out[\"t338\"]) {\n\t\t\t\t if(out[\"t338\"][0]>0) for(var i=0; i<qarea; i++) img[i] = data[i];\t// sometimes t338 is 1 or 2 in case of Alpha\n\t\t\t\t else  for(var i=0; i<qarea; i+=4) {  img[i] = data[i];  img[i+1] = data[i+1];  img[i+2] = data[i+2];  img[i+3] = 255;  }\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar smpls = out[\"t258\"]?out[\"t258\"].length : 3;\n\t\t\t\tif(smpls==4) for(var i=0; i<qarea; i++) img[i] = data[i];\n\t\t\t\tif(smpls==3) for(var i=0; i< area; i++) {  var qi=i<<2, ti=i*3;  img[qi]=data[ti];  img[qi+1]=data[ti+1];  img[qi+2]=data[ti+2];  img[qi+3]=255;    }\n\t\t\t}\n\t\t}\n\t\telse  // 3x 16-bit channel\n\t\t\tfor(var i=0; i<area; i++) {  var qi=i<<2, ti=i*6;  img[qi]=data[ti];  img[qi+1]=data[ti+2];  img[qi+2]=data[ti+4];  img[qi+3]=255;    }\n\t}\n\tif(intp==3) {\n\t\tvar map = out[\"t320\"];\n\t\tfor(var i=0; i<area; i++) {  var qi=i<<2, mi=data[i];  img[qi]=(map[mi]>>8);  img[qi+1]=(map[256+mi]>>8);  img[qi+2]=(map[512+mi]>>8);  img[qi+3]=255;    }\n\t}\n\tif(intp==5) for(var i=0; i<area; i++) {\n\t\tvar qi=i<<2;  var C=255-data[qi], M=255-data[qi+1], Y=255-data[qi+2], K=(255-data[qi+3])*(1/255);\n\t\timg[qi]=Math.round(C*K);  img[qi+1]=Math.round(M*K);  img[qi+2]=Math.round(Y*K);  img[qi+3]=255;\n\t}\n\treturn img;\n}\n\nUTIF.replaceIMG = function()\n{\n\tvar imgs = document.getElementsByTagName(\"img\");\n\tfor (var i=0; i<imgs.length; i++) {\n\t\tvar img=imgs[i], src=img.getAttribute(\"src\"), suff=src.split(\".\").pop().toLowerCase();\n\t\tif(suff!=\"tif\" && suff!=\"tiff\") continue;\n\t\tvar xhr = new XMLHttpRequest();  UTIF._xhrs.push(xhr);  UTIF._imgs.push(img);\n\t\txhr.open(\"GET\", src);  xhr.responseType = \"arraybuffer\";\n\t\txhr.onload = UTIF._imgLoaded;   xhr.send();\n\t}\n}\nUTIF._xhrs = [];  UTIF._imgs = [];\nUTIF._imgLoaded = function(e)\n{\n\tvar page = UTIF.decode(e.target.response)[0], rgba = UTIF.toRGBA8(page), w=page.width, h=page.height;\n\tvar ind = UTIF._xhrs.indexOf(e.target), img = UTIF._imgs[ind];\n\tUTIF._xhrs.splice(ind,1);  UTIF._imgs.splice(ind,1);\n\tvar cnv = document.createElement(\"canvas\");  cnv.width=w;  cnv.height=h;\n\tvar ctx = cnv.getContext(\"2d\"), imgd = ctx.createImageData(w,h);\n\tfor(var i=0; i<rgba.length; i++) imgd.data[i]=rgba[i];       ctx.putImageData(imgd,0,0);\n\tvar attr = [\"style\",\"class\",\"id\"];\n\tfor(var i=0; i<attr.length; i++) cnv.setAttribute(attr[i], img.getAttribute(attr[i]));\n\timg.parentNode.replaceChild(cnv,img);\n}\n\n\nUTIF._binBE = {\n\tnextZero   : function(data, o) {  while(data[o]!=0) o++;  return o;  },\n\treadUshort : function(buff, p) {  return (buff[p]<< 8) |  buff[p+1];  },\n\treadUint   : function(buff, p) {  var a=UTIF._binBE.ui8;  a[0]=buff[p+3];  a[1]=buff[p+2];  a[2]=buff[p+1];  a[3]=buff[p];  return UTIF._binBE.ui32[0];  },\n\treadASCII  : function(buff, p, l) {  var s = \"\";   for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]);   return s; },\n\n\twriteUshort: function(buff, p, n) {  buff[p] = (n>> 8)&255;  buff[p+1] =  n&255;  },\n\twriteUint  : function(buff, p, n) {  buff[p] = (n>>24)&255;  buff[p+1] = (n>>16)&255;  buff[p+2] = (n>>8)&255;  buff[p+3] = (n>>0)&255;  },\n\twriteASCII : function(buff, p, s) {  for(var i = 0; i < s.length; i++)  buff[p+i] = s.charCodeAt(i);  }\n}\nUTIF._binBE.ui8  = new Uint8Array(4);\nUTIF._binBE.ui32 = new Uint32Array(UTIF._binBE.ui8.buffer);\nUTIF._binLE = {\n\tnextZero   : UTIF._binBE.nextZero,\n\treadUshort : function(buff, p) {  return (buff[p+1]<< 8) |  buff[p];  },\n\treadUint   : function(buff, p) {  return (buff[p+3]<<24) | (buff[p+2]<<16) | (buff[p+1]<< 8) | buff[p];  },\n\treadASCII  : UTIF._binBE.readASCII\n}\nUTIF._copyTile = function(tb, tw, th, b, w, h, xoff, yoff)\n{\n\tfor(var y=0; y<th; y++)\n\t\tfor(var x=0; x<tw; x++)\n\t\t{\n\t\t\tvar tx = xoff+x, ty = yoff+y;\n\t\t\tif(tx<w && ty<h) b[ty*w+tx] = tb[y*tw+x];\n\t\t}\n}\n\n})(UTIF, pako);\n})();\n"]}