"use strict";var BitByte=require("./8BitByte"),RSBlock=require("./RSBlock"),BitBuffer=require("./BitBuffer"),util=require("./util"),Polynomial=require("./Polynomial");function QRCode(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}var proto=QRCode.prototype;proto.addData=function(t){var e=new BitByte(t);this.dataList.push(e),this.dataCache=null},proto.isDark=function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+","+e);return this.modules[t][e]},proto.getModuleCount=function(){return this.moduleCount},proto.make=function(){if(this.typeNumber<1){var t=1;for(t=1;t<40;t++){for(var e=RSBlock.getRSBlocks(t,this.errorCorrectLevel),o=new BitBuffer,r=0,i=0;i>o&1);this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=r}for(o=0;o<18;o++){r=!t&&1==(e>>o&1);this.modules[o%3+this.moduleCount-8-3][Math.floor(o/3)]=r}},proto.setupTypeInfo=function(t,e){for(var o=this.errorCorrectLevel<<3|e,r=util.getBCHTypeInfo(o),i=0;i<15;i++){var n=!t&&1==(r>>i&1);i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n}for(i=0;i<15;i++){n=!t&&1==(r>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n}this.modules[this.moduleCount-8][8]=!t},proto.mapData=function(t,e){for(var o=-1,r=this.moduleCount-1,i=7,n=0,u=this.moduleCount-1;0>>i&1)),util.getMask(e,r,u-s)&&(l=!l),this.modules[r][u-s]=l,-1==--i&&(n++,i=7)}if((r+=o)<0||this.moduleCount<=r){r-=o,o=-o;break}}},QRCode.PAD0=236,QRCode.PAD1=17,QRCode.createData=function(t,e,o){for(var r=RSBlock.getRSBlocks(t,e),i=new BitBuffer,n=0;n8*s)throw new Error("code length overflow. ("+i.getLengthInBits()+">"+8*s+")");for(i.getLengthInBits()+4<=8*s&&i.put(0,4);i.getLengthInBits()%8!=0;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*s||(i.put(QRCode.PAD0,8),i.getLengthInBits()>=8*s));)i.put(QRCode.PAD1,8);return QRCode.createBytes(i,r)},QRCode.createBytes=function(t,e){for(var o=0,r=0,i=0,n=new Array(e.length),u=new Array(e.length),s=0;s