{"version":3,"sources":["webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/vue-qr/src/awesome-qr.js","webpack:///./node_modules/uuid/v4.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/vue-qr/src/vue-qr.vue?56bc","webpack:///./node_modules/vue-qr/src/util.js","webpack:///./node_modules/vue-qr/src/imgLoaded.js","webpack:///node_modules/vue-qr/src/vue-qr.vue","webpack:///./node_modules/vue-qr/src/vue-qr.vue?6f13","webpack:///./node_modules/vue-qr/src/vue-qr.vue","webpack:///./node_modules/vue-qr/src/main.js"],"names":["byteToHex","i","toString","substr","bytesToUuid","buf","offset","bth","join","module","exports","AwesomeQRCode","QR8bitByte","data","this","mode","QRMode","MODE_8BIT_BYTE","parsedData","l","length","byteArray","code","charCodeAt","push","Array","prototype","concat","apply","unshift","QRCodeModel","typeNumber","errorCorrectLevel","modules","moduleCount","dataCache","dataList","getLength","buffer","write","put","addData","newData","isDark","row","col","Error","getModuleCount","make","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","totalDataCount","dataCount","QRUtil","getLengthInBits","makeImpl","getBestMaskPattern","test","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","minLostPoint","pattern","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","cs","y","x","dark","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","j","bits","getBCHTypeNumber","mod","Math","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","mask","getMask","PAD0","PAD1","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","rsPoly","getErrorCorrectPolynomial","rawPoly","QRPolynomial","modPoly","modIndex","get","totalCodeCount","index","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","L","M","Q","H","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","d","getBCHDigit","digit","errorCorrectLength","a","multiply","QRMath","gexp","type","qrCode","sameCount","count","darkCount","ratio","abs","glog","n","LOG_TABLE","EXP_TABLE","num","shift","undefined","e","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","bufIndex","bit","_isSupportCanvas","CanvasRenderingContext2D","Drawing","_onMakeImage","_elImage","src","_elCanvas","toDataURL","style","display","_safeSetDataURI","fSuccess","fFail","self","_fFail","_fSuccess","_bSupportDataURI","el","document","createElement","fOnError","call","fOnSuccess","onabort","onerror","onload","htOption","_bIsPainted","_htOption","width","size","height","_oContext","getContext","alt","_callback","callback","_bindElement","bindElement","draw","oQRCode","_tCanvas","nCount","rawSize","rawMargin","margin","ceil","rawViewportSize","whiteMargin","backgroundDimming","rawWidth","nWidth","nHeight","viewportSize","dotScale","clear","save","translate","_bkgCanvas","_bContext","_maskCanvas","_mContext","backgroundImage","autoColor","avgRGB","getAverageRGB","colorDark","g","b","maskedDots","drawImage","rect","fillStyle","fill","binarize","colorLight","agnPatternCenter","xyOffset","bIsDark","isBlkPosCtr","bProtected","nLeft","nTop","strokeStyle","lineWidth","fillRect_","inAgnRange","protectorStyle","fillRect","edgeCenter","agnX","agnY","drawAgnProtector","drawAgn","logoImage","logoScale","logoMargin","logoCornerRadius","restore","logoSize","prepareRoundedCornerClip","clip","pixels","getImageData","threshold","parseInt","binarizeThreshold","R","G","B","sum","rgb2gray","putImageData","_fCanvas","_fContext","getElementById","nodeName","elStyle","console","error","makeImage","isPainted","clearRect","round","nNumber","aHTML","nLeftMarginTable","elTable","offsetWidth","nTopMarginTable","offsetHeight","ctx","w","h","beginPath","arcTo","closePath","canvas","maskSrc","bDark","fill_","context","centerX","centerY","imgEl","blockSize","defaultRGB","rgb","naturalHeight","naturalWidth","create","vOption","correctLevel","text","useSVG","svgDrawer","_oQRCode","_oDrawing","makeCode","sText","CorrectLevel","window","factory","rng","v4","options","rnds","random","ii","getRandomValues","crypto","bind","msCrypto","rnds8","Uint8Array","_vm","_h","$createElement","_c","_self","_b","id","uuid","_e","staticRenderFns","toBoolean","val","imgLoaded","url","Promise","resolve","reject","slice","img","Image","xhr","XMLHttpRequest","newUrl","URL","createObjectURL","response","revokeObjectURL","open","responseType","send","component"],"mappings":"gIAKA,IADA,IAAIA,EAAY,GACPC,EAAI,EAAGA,EAAI,MAAOA,EACzBD,EAAUC,IAAMA,EAAI,KAAOC,SAAS,IAAIC,OAAO,GAGjD,SAASC,EAAYC,EAAKC,GACxB,IAAIL,EAAIK,GAAU,EACdC,EAAMP,EAEV,MAAO,CACLO,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MACvBM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAC9BM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAC9BM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAC9BM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MAAO,IAC9BM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MACvBM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,MACvBM,EAAIF,EAAIJ,MAAOM,EAAIF,EAAIJ,OACtBO,KAAK,IAGVC,EAAOC,QAAUN,G,uBCPjB,IAAIO,GACH,WAgBC,SAASC,EAAWC,GAClBC,KAAKC,KAAOC,EAAOC,eACnBH,KAAKD,KAAOA,EACZC,KAAKI,WAAa,GAClB,IAAK,IAAIjB,EAAI,EAAGkB,EAAIL,KAAKD,KAAKO,OAAQnB,EAAIkB,EAAGlB,IAAK,CAChD,IAAIoB,EAAY,GACZC,EAAOR,KAAKD,KAAKU,WAAWtB,GAC5BqB,EAAO,OACTD,EAAU,GAAK,KAAgB,QAAPC,KAAqB,GAC7CD,EAAU,GAAK,KAAgB,OAAPC,KAAoB,GAC5CD,EAAU,GAAK,KAAgB,KAAPC,KAAkB,EAC1CD,EAAU,GAAK,IAAe,GAAPC,GACdA,EAAO,MAChBD,EAAU,GAAK,KAAgB,MAAPC,KAAmB,GAC3CD,EAAU,GAAK,KAAgB,KAAPC,KAAkB,EAC1CD,EAAU,GAAK,IAAe,GAAPC,GACdA,EAAO,KAChBD,EAAU,GAAK,KAAgB,KAAPC,KAAkB,EAC1CD,EAAU,GAAK,IAAe,GAAPC,GAEvBD,EAAU,GAAKC,EAEjBR,KAAKI,WAAWM,KAAKH,GAEvBP,KAAKI,WAAaO,MAAMC,UAAUC,OAAOC,MAAM,GAAId,KAAKI,YACpDJ,KAAKI,WAAWE,QAAUN,KAAKD,KAAKO,SACtCN,KAAKI,WAAWW,QAAQ,KACxBf,KAAKI,WAAWW,QAAQ,KACxBf,KAAKI,WAAWW,QAAQ,MAc5B,SAASC,EAAYC,EAAYC,GAC/BlB,KAAKiB,WAAaA,EAClBjB,KAAKkB,kBAAoBA,EACzBlB,KAAKmB,QAAU,KACfnB,KAAKoB,YAAc,EACnBpB,KAAKqB,UAAY,KACjBrB,KAAKsB,SAAW,GAhBlBxB,EAAWc,UAAY,CACrBW,UAAW,SAASC,GAClB,OAAOxB,KAAKI,WAAWE,QAEzBmB,MAAO,SAASD,GACd,IAAK,IAAIrC,EAAI,EAAGkB,EAAIL,KAAKI,WAAWE,OAAQnB,EAAIkB,EAAGlB,IACjDqC,EAAOE,IAAI1B,KAAKI,WAAWjB,GAAI,KAarC6B,EAAYJ,UAAY,CACtBe,QAAS,SAAS5B,GAChB,IAAI6B,EAAU,IAAI9B,EAAWC,GAC7BC,KAAKsB,SAASZ,KAAKkB,GACnB5B,KAAKqB,UAAY,MAEnBQ,OAAQ,SAASC,EAAKC,GACpB,GACED,EAAM,GACN9B,KAAKoB,aAAeU,GACpBC,EAAM,GACN/B,KAAKoB,aAAeW,EAEpB,MAAM,IAAIC,MAAMF,EAAM,IAAMC,GAE9B,OAAO/B,KAAKmB,QAAQW,GAAKC,IAE3BE,eAAgB,WACd,OAAOjC,KAAKoB,aAEdc,KAAM,WAEJ,GAAIlC,KAAKiB,WAAa,EAAG,CACvB,IAAIA,EAAa,EACjB,IAAKA,EAAa,EAAGA,EAAa,GAAIA,IAAc,CAQlD,IAPA,IAAIkB,EAAWC,EAAUC,YACvBpB,EACAjB,KAAKkB,mBAGHM,EAAS,IAAIc,EACbC,EAAiB,EACZpD,EAAI,EAAGA,EAAIgD,EAAS7B,OAAQnB,IACnCoD,GAAkBJ,EAAShD,GAAGqD,UAGhC,IAASrD,EAAI,EAAGA,EAAIa,KAAKsB,SAAShB,OAAQnB,IAAK,CAC7C,IAAIY,EAAOC,KAAKsB,SAASnC,GACzBqC,EAAOE,IAAI3B,EAAKE,KAAM,GACtBuB,EAAOE,IACL3B,EAAKwB,YACLkB,EAAOC,gBAAgB3C,EAAKE,KAAMgB,IAEpClB,EAAK0B,MAAMD,GAEb,GAAIA,EAAOkB,mBAAsC,EAAjBH,EAAoB,MAEtDvC,KAAKiB,WAAaA,EAGpBjB,KAAK2C,UAAS,EAAI3C,KAAK4C,uBAEzBD,SAAU,SAASE,EAAMC,GACvB9C,KAAKoB,YAAgC,EAAlBpB,KAAKiB,WAAiB,GACzCjB,KAAKmB,QAAU,IAAIR,MAAMX,KAAKoB,aAC9B,IAAK,IAAIU,EAAM,EAAGA,EAAM9B,KAAKoB,YAAaU,IAAO,CAC/C9B,KAAKmB,QAAQW,GAAO,IAAInB,MAAMX,KAAKoB,aACnC,IAAK,IAAIW,EAAM,EAAGA,EAAM/B,KAAKoB,YAAaW,IACxC/B,KAAKmB,QAAQW,GAAKC,GAAO,KAG7B/B,KAAK+C,0BAA0B,EAAG,GAClC/C,KAAK+C,0BAA0B/C,KAAKoB,YAAc,EAAG,GACrDpB,KAAK+C,0BAA0B,EAAG/C,KAAKoB,YAAc,GACrDpB,KAAKgD,6BACLhD,KAAKiD,qBACLjD,KAAKkD,cAAcL,EAAMC,GACrB9C,KAAKiB,YAAc,GACrBjB,KAAKmD,gBAAgBN,GAED,MAAlB7C,KAAKqB,YACPrB,KAAKqB,UAAYL,EAAYoC,WAC3BpD,KAAKiB,WACLjB,KAAKkB,kBACLlB,KAAKsB,WAGTtB,KAAKqD,QAAQrD,KAAKqB,UAAWyB,IAE/BC,0BAA2B,SAASjB,EAAKC,GACvC,IAAK,IAAIuB,GAAK,EAAGA,GAAK,EAAGA,IACvB,KAAIxB,EAAMwB,IAAM,GAAKtD,KAAKoB,aAAeU,EAAMwB,GAC/C,IAAK,IAAIC,GAAK,EAAGA,GAAK,EAAGA,IACnBxB,EAAMwB,IAAM,GAAKvD,KAAKoB,aAAeW,EAAMwB,IAM7CvD,KAAKmB,QAAQW,EAAMwB,GAAGvB,EAAMwB,GAJ3B,GAAKD,GAAKA,GAAK,IAAW,GAALC,GAAe,GAALA,IAC/B,GAAKA,GAAKA,GAAK,IAAW,GAALD,GAAe,GAALA,IAC/B,GAAKA,GAAKA,GAAK,GAAK,GAAKC,GAAKA,GAAK,IAS5CX,mBAAoB,WAGlB,IAFA,IAAIY,EAAe,EACfC,EAAU,EACLtE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1Ba,KAAK2C,UAAS,EAAIxD,GAClB,IAAIuE,EAAYjB,EAAOkB,aAAa3D,OAC3B,GAALb,GAAUqE,EAAeE,KAC3BF,EAAeE,EACfD,EAAUtE,GAGd,OAAOsE,GAETG,gBAAiB,SAASC,EAAWC,EAAeC,GAClD,IAAIC,EAAQH,EAAUI,qBAAqBH,EAAeC,GACtDG,EAAK,EACTlE,KAAKkC,OACL,IAAK,IAAIJ,EAAM,EAAGA,EAAM9B,KAAKmB,QAAQb,OAAQwB,IAE3C,IADA,IAAIqC,EAAIrC,EAAMoC,EACLnC,EAAM,EAAGA,EAAM/B,KAAKmB,QAAQW,GAAKxB,OAAQyB,IAAO,CACvD,IAAIqC,EAAIrC,EAAMmC,EACVG,EAAOrE,KAAKmB,QAAQW,GAAKC,GACzBsC,IACFL,EAAMM,UAAU,EAAG,KACnBN,EAAMO,OAAOH,EAAGD,GAChBH,EAAMQ,OAAOJ,EAAIF,EAAIC,GACrBH,EAAMQ,OAAOJ,EAAIF,EAAIC,EAAID,GACzBF,EAAMQ,OAAOJ,EAAGD,EAAID,GACpBF,EAAMS,WAIZ,OAAOT,GAETf,mBAAoB,WAClB,IAAK,IAAIK,EAAI,EAAGA,EAAItD,KAAKoB,YAAc,EAAGkC,IACd,MAAtBtD,KAAKmB,QAAQmC,GAAG,KAGpBtD,KAAKmB,QAAQmC,GAAG,GAAKA,EAAI,GAAK,GAEhC,IAAK,IAAIC,EAAI,EAAGA,EAAIvD,KAAKoB,YAAc,EAAGmC,IACd,MAAtBvD,KAAKmB,QAAQ,GAAGoC,KAGpBvD,KAAKmB,QAAQ,GAAGoC,GAAKA,EAAI,GAAK,IAGlCP,2BAA4B,WAE1B,IADA,IAAI0B,EAAMjC,EAAOkC,mBAAmB3E,KAAKiB,YAChC9B,EAAI,EAAGA,EAAIuF,EAAIpE,OAAQnB,IAC9B,IAAK,IAAIyF,EAAI,EAAGA,EAAIF,EAAIpE,OAAQsE,IAAK,CACnC,IAAI9C,EAAM4C,EAAIvF,GACV4C,EAAM2C,EAAIE,GACd,GAA8B,MAA1B5E,KAAKmB,QAAQW,GAAKC,GAGtB,IAAK,IAAIuB,GAAK,EAAGA,GAAK,EAAGA,IACvB,IAAK,IAAIC,GAAK,EAAGA,GAAK,EAAGA,IAQrBvD,KAAKmB,QAAQW,EAAMwB,GAAGvB,EAAMwB,IANtB,GAAND,GACK,GAALA,IACM,GAANC,GACK,GAALA,GACM,GAALD,GAAe,GAALC,IAWvBJ,gBAAiB,SAASN,GAExB,IADA,IAAIgC,EAAOpC,EAAOqC,iBAAiB9E,KAAKiB,YAC/B9B,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI4F,GAAOlC,GAA6B,IAAnBgC,GAAQ1F,EAAK,GAClCa,KAAKmB,QAAQ6D,KAAKC,MAAM9F,EAAI,IACzBA,EAAI,EAAKa,KAAKoB,YAAc,EAAI,GAC/B2D,EAEN,IAAS5F,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvB4F,GAAOlC,GAA6B,IAAnBgC,GAAQ1F,EAAK,GAClCa,KAAKmB,QAAShC,EAAI,EAAKa,KAAKoB,YAAc,EAAI,GAC5C4D,KAAKC,MAAM9F,EAAI,IACb4F,IAGR7B,cAAe,SAASL,EAAMC,GAG5B,IAFA,IAAI/C,EAAQC,KAAKkB,mBAAqB,EAAK4B,EACvC+B,EAAOpC,EAAOyC,eAAenF,GACxBZ,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI4F,GAAOlC,GAA6B,IAAnBgC,GAAQ1F,EAAK,GAC9BA,EAAI,EACNa,KAAKmB,QAAQhC,GAAG,GAAK4F,EACZ5F,EAAI,EACba,KAAKmB,QAAQhC,EAAI,GAAG,GAAK4F,EAEzB/E,KAAKmB,QAAQnB,KAAKoB,YAAc,GAAKjC,GAAG,GAAK4F,EAGjD,IAAS5F,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACvB4F,GAAOlC,GAA6B,IAAnBgC,GAAQ1F,EAAK,GAC9BA,EAAI,EACNa,KAAKmB,QAAQ,GAAGnB,KAAKoB,YAAcjC,EAAI,GAAK4F,EACnC5F,EAAI,EACba,KAAKmB,QAAQ,GAAG,GAAKhC,EAAI,EAAI,GAAK4F,EAElC/E,KAAKmB,QAAQ,GAAG,GAAKhC,EAAI,GAAK4F,EAGlC/E,KAAKmB,QAAQnB,KAAKoB,YAAc,GAAG,IAAMyB,GAE3CQ,QAAS,SAAStD,EAAM+C,GAKtB,IAJA,IAAIqC,GAAO,EACPrD,EAAM9B,KAAKoB,YAAc,EACzBgE,EAAW,EACXC,EAAY,EACPtD,EAAM/B,KAAKoB,YAAc,EAAGW,EAAM,EAAGA,GAAO,EAAG,CAC3C,GAAPA,GAAUA,IACd,MAAO,EAAI,CACT,IAAK,IAAIwB,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAkC,MAA9BvD,KAAKmB,QAAQW,GAAKC,EAAMwB,GAAY,CACtC,IAAIc,GAAO,EACPgB,EAAYtF,EAAKO,SACnB+D,EAA+C,IAAtCtE,EAAKsF,KAAeD,EAAY,IAE3C,IAAIE,EAAO7C,EAAO8C,QAAQzC,EAAahB,EAAKC,EAAMwB,GAC9C+B,IACFjB,GAAQA,GAEVrE,KAAKmB,QAAQW,GAAKC,EAAMwB,GAAKc,EAC7Be,KACiB,GAAbA,IACFC,IACAD,EAAW,GAKjB,GADAtD,GAAOqD,EACHrD,EAAM,GAAK9B,KAAKoB,aAAeU,EAAK,CACtCA,GAAOqD,EACPA,GAAOA,EACP,WAMVnE,EAAYwE,KAAO,IACnBxE,EAAYyE,KAAO,GACnBzE,EAAYoC,WAAa,SAASnC,EAAYC,EAAmBI,GAG/D,IAFA,IAAIa,EAAWC,EAAUC,YAAYpB,EAAYC,GAC7CM,EAAS,IAAIc,EACRnD,EAAI,EAAGA,EAAImC,EAAShB,OAAQnB,IAAK,CACxC,IAAIY,EAAOuB,EAASnC,GACpBqC,EAAOE,IAAI3B,EAAKE,KAAM,GACtBuB,EAAOE,IACL3B,EAAKwB,YACLkB,EAAOC,gBAAgB3C,EAAKE,KAAMgB,IAEpClB,EAAK0B,MAAMD,GAEb,IAAIe,EAAiB,EACrB,IAASpD,EAAI,EAAGA,EAAIgD,EAAS7B,OAAQnB,IACnCoD,GAAkBJ,EAAShD,GAAGqD,UAEhC,GAAIhB,EAAOkB,kBAAqC,EAAjBH,EAC7B,MAAM,IAAIP,MACR,0BACER,EAAOkB,kBACP,IACiB,EAAjBH,EACA,KAGFf,EAAOkB,kBAAoB,GAAsB,EAAjBH,GAClCf,EAAOE,IAAI,EAAG,GAEhB,MAAOF,EAAOkB,kBAAoB,GAAK,EACrClB,EAAOkE,QAAO,GAEhB,MAAO,EAAI,CACT,GAAIlE,EAAOkB,mBAAsC,EAAjBH,EAC9B,MAGF,GADAf,EAAOE,IAAIV,EAAYwE,KAAM,GACzBhE,EAAOkB,mBAAsC,EAAjBH,EAC9B,MAEFf,EAAOE,IAAIV,EAAYyE,KAAM,GAE/B,OAAOzE,EAAY2E,YAAYnE,EAAQW,IAEzCnB,EAAY2E,YAAc,SAASnE,EAAQW,GAMzC,IALA,IAAI3C,EAAS,EACToG,EAAa,EACbC,EAAa,EACbC,EAAS,IAAInF,MAAMwB,EAAS7B,QAC5ByF,EAAS,IAAIpF,MAAMwB,EAAS7B,QACvBgD,EAAI,EAAGA,EAAInB,EAAS7B,OAAQgD,IAAK,CACxC,IAAI0C,EAAU7D,EAASmB,GAAGd,UACtByD,EAAU9D,EAASmB,GAAG4C,WAAaF,EACvCJ,EAAaZ,KAAKmB,IAAIP,EAAYI,GAClCH,EAAab,KAAKmB,IAAIN,EAAYI,GAClCH,EAAOxC,GAAK,IAAI3C,MAAMqF,GACtB,IAAK,IAAI7G,EAAI,EAAGA,EAAI2G,EAAOxC,GAAGhD,OAAQnB,IACpC2G,EAAOxC,GAAGnE,GAAK,IAAOqC,EAAOA,OAAOrC,EAAIK,GAE1CA,GAAUwG,EACV,IAAII,EAAS3D,EAAO4D,0BAA0BJ,GAC1CK,EAAU,IAAIC,EAAaT,EAAOxC,GAAI8C,EAAO7E,YAAc,GAC3DiF,EAAUF,EAAQvB,IAAIqB,GAC1BL,EAAOzC,GAAK,IAAI3C,MAAMyF,EAAO7E,YAAc,GAC3C,IAASpC,EAAI,EAAGA,EAAI4G,EAAOzC,GAAGhD,OAAQnB,IAAK,CACzC,IAAIsH,EAAWtH,EAAIqH,EAAQjF,YAAcwE,EAAOzC,GAAGhD,OACnDyF,EAAOzC,GAAGnE,GAAKsH,GAAY,EAAID,EAAQE,IAAID,GAAY,GAG3D,IAAIE,EAAiB,EACrB,IAASxH,EAAI,EAAGA,EAAIgD,EAAS7B,OAAQnB,IACnCwH,GAAkBxE,EAAShD,GAAG+G,WAEhC,IAAInG,EAAO,IAAIY,MAAMgG,GACjBC,EAAQ,EACZ,IAASzH,EAAI,EAAGA,EAAIyG,EAAYzG,IAC9B,IAASmE,EAAI,EAAGA,EAAInB,EAAS7B,OAAQgD,IAC/BnE,EAAI2G,EAAOxC,GAAGhD,SAChBP,EAAK6G,KAAWd,EAAOxC,GAAGnE,IAIhC,IAASA,EAAI,EAAGA,EAAI0G,EAAY1G,IAC9B,IAASmE,EAAI,EAAGA,EAAInB,EAAS7B,OAAQgD,IAC/BnE,EAAI4G,EAAOzC,GAAGhD,SAChBP,EAAK6G,KAAWb,EAAOzC,GAAGnE,IAIhC,OAAOY,GA2RT,IAzRA,IAAIG,EAAS,CACX2G,YAAa,EACbC,eAAgB,EAChB3G,eAAgB,EAChB4G,WAAY,GAEVC,EAAsB,CAAEC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,GAC7CC,EAAgB,CAClBC,WAAY,EACZC,WAAY,EACZC,WAAY,EACZC,WAAY,EACZC,WAAY,EACZC,WAAY,EACZC,WAAY,EACZC,WAAY,GAEVpF,EAAS,CACXqF,uBAAwB,CACtB,GACA,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,IACJ,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,IACZ,CAAC,EAAG,GAAI,GAAI,GAAI,IAChB,CAAC,EAAG,GAAI,GAAI,GAAI,IAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,KAChB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,KACpB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,KACrB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,KAC1B,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,MAE5BC,IACE,KAOFC,IACE,KAQFC,SAAU,MACV/C,eAAgB,SAASnF,GACvB,IAAImI,EAAInI,GAAQ,GAChB,MAAO0C,EAAO0F,YAAYD,GAAKzF,EAAO0F,YAAY1F,EAAOsF,MAAQ,EAC/DG,GACEzF,EAAOsF,KAAQtF,EAAO0F,YAAYD,GAAKzF,EAAO0F,YAAY1F,EAAOsF,KAErE,OAAShI,GAAQ,GAAMmI,GAAKzF,EAAOwF,UAErCnD,iBAAkB,SAAS/E,GACzB,IAAImI,EAAInI,GAAQ,GAChB,MAAO0C,EAAO0F,YAAYD,GAAKzF,EAAO0F,YAAY1F,EAAOuF,MAAQ,EAC/DE,GACEzF,EAAOuF,KAAQvF,EAAO0F,YAAYD,GAAKzF,EAAO0F,YAAY1F,EAAOuF,KAErE,OAAQjI,GAAQ,GAAMmI,GAExBC,YAAa,SAASpI,GACpB,IAAIqI,EAAQ,EACZ,MAAe,GAARrI,EACLqI,IACArI,KAAU,EAEZ,OAAOqI,GAETzD,mBAAoB,SAAS1D,GAC3B,OAAOwB,EAAOqF,uBAAuB7G,EAAa,IAEpDsE,QAAS,SAASzC,EAAa3D,EAAGyF,GAChC,OAAQ9B,GACN,KAAKuE,EAAcC,WACjB,OAAQnI,EAAIyF,GAAK,GAAK,EACxB,KAAKyC,EAAcE,WACjB,OAAOpI,EAAI,GAAK,EAClB,KAAKkI,EAAcG,WACjB,OAAO5C,EAAI,GAAK,EAClB,KAAKyC,EAAcI,WACjB,OAAQtI,EAAIyF,GAAK,GAAK,EACxB,KAAKyC,EAAcK,WACjB,OAAQ1C,KAAKC,MAAM9F,EAAI,GAAK6F,KAAKC,MAAML,EAAI,IAAM,GAAK,EACxD,KAAKyC,EAAcM,WACjB,OAASxI,EAAIyF,EAAK,EAAOzF,EAAIyF,EAAK,GAAM,EAC1C,KAAKyC,EAAcO,WACjB,OAAUzI,EAAIyF,EAAK,EAAOzF,EAAIyF,EAAK,GAAM,GAAK,EAChD,KAAKyC,EAAcQ,WACjB,OAAU1I,EAAIyF,EAAK,GAAOzF,EAAIyF,GAAK,GAAM,GAAK,EAChD,QACE,MAAM,IAAI5C,MAAM,mBAAqBc,KAG3CuD,0BAA2B,SAASgC,GAElC,IADA,IAAIC,EAAI,IAAI/B,EAAa,CAAC,GAAI,GACrBpH,EAAI,EAAGA,EAAIkJ,EAAoBlJ,IACtCmJ,EAAIA,EAAEC,SAAS,IAAIhC,EAAa,CAAC,EAAGiC,EAAOC,KAAKtJ,IAAK,IAEvD,OAAOmJ,GAET5F,gBAAiB,SAASzC,EAAMyI,GAC9B,GAAI,GAAKA,GAAQA,EAAO,GACtB,OAAQzI,GACN,KAAKC,EAAO2G,YACV,OAAO,GACT,KAAK3G,EAAO4G,eACV,OAAO,EACT,KAAK5G,EAAOC,eACV,OAAO,EACT,KAAKD,EAAO6G,WACV,OAAO,EACT,QACE,MAAM,IAAI/E,MAAM,QAAU/B,QAEzB,GAAIyI,EAAO,GAChB,OAAQzI,GACN,KAAKC,EAAO2G,YACV,OAAO,GACT,KAAK3G,EAAO4G,eACV,OAAO,GACT,KAAK5G,EAAOC,eACV,OAAO,GACT,KAAKD,EAAO6G,WACV,OAAO,GACT,QACE,MAAM,IAAI/E,MAAM,QAAU/B,OAEzB,MAAIyI,EAAO,IAchB,MAAM,IAAI1G,MAAM,QAAU0G,GAb1B,OAAQzI,GACN,KAAKC,EAAO2G,YACV,OAAO,GACT,KAAK3G,EAAO4G,eACV,OAAO,GACT,KAAK5G,EAAOC,eACV,OAAO,GACT,KAAKD,EAAO6G,WACV,OAAO,GACT,QACE,MAAM,IAAI/E,MAAM,QAAU/B,MAMlC0D,aAAc,SAASgF,GAGrB,IAFA,IAAIvH,EAAcuH,EAAO1G,iBACrByB,EAAY,EACP5B,EAAM,EAAGA,EAAMV,EAAaU,IACnC,IAAK,IAAIC,EAAM,EAAGA,EAAMX,EAAaW,IAAO,CAG1C,IAFA,IAAI6G,EAAY,EACZvE,EAAOsE,EAAO9G,OAAOC,EAAKC,GACrBuB,GAAK,EAAGA,GAAK,EAAGA,IACvB,KAAIxB,EAAMwB,EAAI,GAAKlC,GAAeU,EAAMwB,GAGxC,IAAK,IAAIC,GAAK,EAAGA,GAAK,EAAGA,IACnBxB,EAAMwB,EAAI,GAAKnC,GAAeW,EAAMwB,GAG/B,GAALD,GAAe,GAALC,GAGVc,GAAQsE,EAAO9G,OAAOC,EAAMwB,EAAGvB,EAAMwB,IACvCqF,IAIFA,EAAY,IACdlF,GAAa,EAAIkF,EAAY,GAInC,IAAS9G,EAAM,EAAGA,EAAMV,EAAc,EAAGU,IACvC,IAASC,EAAM,EAAGA,EAAMX,EAAc,EAAGW,IAAO,CAC9C,IAAI8G,EAAQ,EACRF,EAAO9G,OAAOC,EAAKC,IAAM8G,IACzBF,EAAO9G,OAAOC,EAAM,EAAGC,IAAM8G,IAC7BF,EAAO9G,OAAOC,EAAKC,EAAM,IAAI8G,IAC7BF,EAAO9G,OAAOC,EAAM,EAAGC,EAAM,IAAI8G,IACxB,GAATA,GAAuB,GAATA,IAChBnF,GAAa,GAInB,IAAS5B,EAAM,EAAGA,EAAMV,EAAaU,IACnC,IAASC,EAAM,EAAGA,EAAMX,EAAc,EAAGW,IAErC4G,EAAO9G,OAAOC,EAAKC,KAClB4G,EAAO9G,OAAOC,EAAKC,EAAM,IAC1B4G,EAAO9G,OAAOC,EAAKC,EAAM,IACzB4G,EAAO9G,OAAOC,EAAKC,EAAM,IACzB4G,EAAO9G,OAAOC,EAAKC,EAAM,KACxB4G,EAAO9G,OAAOC,EAAKC,EAAM,IAC1B4G,EAAO9G,OAAOC,EAAKC,EAAM,KAEzB2B,GAAa,IAInB,IAAS3B,EAAM,EAAGA,EAAMX,EAAaW,IACnC,IAASD,EAAM,EAAGA,EAAMV,EAAc,EAAGU,IAErC6G,EAAO9G,OAAOC,EAAKC,KAClB4G,EAAO9G,OAAOC,EAAM,EAAGC,IACxB4G,EAAO9G,OAAOC,EAAM,EAAGC,IACvB4G,EAAO9G,OAAOC,EAAM,EAAGC,IACvB4G,EAAO9G,OAAOC,EAAM,EAAGC,KACtB4G,EAAO9G,OAAOC,EAAM,EAAGC,IACxB4G,EAAO9G,OAAOC,EAAM,EAAGC,KAEvB2B,GAAa,IAInB,IAAIoF,EAAY,EAChB,IAAS/G,EAAM,EAAGA,EAAMX,EAAaW,IACnC,IAASD,EAAM,EAAGA,EAAMV,EAAaU,IAC/B6G,EAAO9G,OAAOC,EAAKC,IACrB+G,IAIN,IAAIC,EACF/D,KAAKgE,IAAK,IAAMF,EAAa1H,EAAcA,EAAc,IAAM,EAEjE,OADAsC,GAAqB,GAARqF,EACNrF,IAGP8E,EAAS,CACXS,KAAM,SAASC,GACb,GAAIA,EAAI,EACN,MAAM,IAAIlH,MAAM,QAAUkH,EAAI,KAEhC,OAAOV,EAAOW,UAAUD,IAE1BT,KAAM,SAASS,GACb,MAAOA,EAAI,EACTA,GAAK,IAEP,MAAOA,GAAK,IACVA,GAAK,IAEP,OAAOV,EAAOY,UAAUF,IAE1BE,UAAW,IAAIzI,MAAM,KACrBwI,UAAW,IAAIxI,MAAM,MAEdxB,EAAI,EAAGA,EAAI,EAAGA,IACrBqJ,EAAOY,UAAUjK,GAAK,GAAKA,EAE7B,IAASA,EAAI,EAAGA,EAAI,IAAKA,IACvBqJ,EAAOY,UAAUjK,GACfqJ,EAAOY,UAAUjK,EAAI,GACrBqJ,EAAOY,UAAUjK,EAAI,GACrBqJ,EAAOY,UAAUjK,EAAI,GACrBqJ,EAAOY,UAAUjK,EAAI,GAEzB,IAASA,EAAI,EAAGA,EAAI,IAAKA,IACvBqJ,EAAOW,UAAUX,EAAOY,UAAUjK,IAAMA,EAE1C,SAASoH,EAAa8C,EAAKC,GACzB,QAAkBC,GAAdF,EAAI/I,OACN,MAAM,IAAI0B,MAAMqH,EAAI/I,OAAS,IAAMgJ,GAErC,IAAI9J,EAAS,EACb,MAAOA,EAAS6J,EAAI/I,QAAyB,GAAf+I,EAAI7J,GAChCA,IAEFQ,KAAKqJ,IAAM,IAAI1I,MAAM0I,EAAI/I,OAASd,EAAS8J,GAC3C,IAAK,IAAInK,EAAI,EAAGA,EAAIkK,EAAI/I,OAASd,EAAQL,IACvCa,KAAKqJ,IAAIlK,GAAKkK,EAAIlK,EAAIK,GAqC1B,SAAS4C,EAAU8D,EAAY1D,GAC7BxC,KAAKkG,WAAaA,EAClBlG,KAAKwC,UAAYA,EAyMnB,SAASF,IACPtC,KAAKwB,OAAS,GACdxB,KAAKM,OAAS,EA9OhBiG,EAAa3F,UAAY,CACvB8F,IAAK,SAASE,GACZ,OAAO5G,KAAKqJ,IAAIzC,IAElBrF,UAAW,WACT,OAAOvB,KAAKqJ,IAAI/I,QAElBiI,SAAU,SAASiB,GAEjB,IADA,IAAIH,EAAM,IAAI1I,MAAMX,KAAKuB,YAAciI,EAAEjI,YAAc,GAC9CpC,EAAI,EAAGA,EAAIa,KAAKuB,YAAapC,IACpC,IAAK,IAAIyF,EAAI,EAAGA,EAAI4E,EAAEjI,YAAaqD,IACjCyE,EAAIlK,EAAIyF,IAAM4D,EAAOC,KACnBD,EAAOS,KAAKjJ,KAAK0G,IAAIvH,IAAMqJ,EAAOS,KAAKO,EAAE9C,IAAI9B,KAInD,OAAO,IAAI2B,EAAa8C,EAAK,IAE/BtE,IAAK,SAASyE,GACZ,GAAIxJ,KAAKuB,YAAciI,EAAEjI,YAAc,EACrC,OAAOvB,KAIT,IAFA,IAAI+I,EAAQP,EAAOS,KAAKjJ,KAAK0G,IAAI,IAAM8B,EAAOS,KAAKO,EAAE9C,IAAI,IACrD2C,EAAM,IAAI1I,MAAMX,KAAKuB,aAChBpC,EAAI,EAAGA,EAAIa,KAAKuB,YAAapC,IACpCkK,EAAIlK,GAAKa,KAAK0G,IAAIvH,GAEpB,IAASA,EAAI,EAAGA,EAAIqK,EAAEjI,YAAapC,IACjCkK,EAAIlK,IAAMqJ,EAAOC,KAAKD,EAAOS,KAAKO,EAAE9C,IAAIvH,IAAM4J,GAEhD,OAAO,IAAIxC,EAAa8C,EAAK,GAAGtE,IAAIyE,KAQxCpH,EAAUqH,eAAiB,CACzB,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GACR,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,IACR,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,IAAK,IACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,IAAK,KACT,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,IACT,CAAC,EAAG,IAAK,GAAI,EAAG,IAAK,IACrB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,EAAG,GAAI,IACnB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,IACT,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,IACT,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,IACT,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,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","file":"js/book~course~exam~login~news~order~questionPay.b291e159.js","sourcesContent":["/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","/**\n * @fileoverview\n * Awesome-qr.js\n *\n * @author Makito \n * @see https://www.keep.moe/\n * @see https://github.com/SumiMakito/Awesome-qr.js\n */\n/**\n * @fileoverview\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @author davidshimjs\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n */\nvar AwesomeQRCode\n;(function() {\n //---------------------------------------------------------------------\n // QRCode for JavaScript\n //\n // Copyright (c) 2009 Kazuhiko Arase\n //\n // URL: http://www.d-project.com/\n //\n // Licensed under the MIT license:\n // http://www.opensource.org/licenses/mit-license.php\n //\n // The word \"QR Code\" is registered trademark of\n // DENSO WAVE INCORPORATED\n // http://www.denso-wave.com/qrcode/faqpatent-e.html\n //\n //---------------------------------------------------------------------\n function QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE\n this.data = data\n this.parsedData = []\n for (var i = 0, l = this.data.length; i < l; i++) {\n var byteArray = []\n var code = this.data.charCodeAt(i)\n if (code > 0x10000) {\n byteArray[0] = 0xf0 | ((code & 0x1c0000) >>> 18)\n byteArray[1] = 0x80 | ((code & 0x3f000) >>> 12)\n byteArray[2] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[3] = 0x80 | (code & 0x3f)\n } else if (code > 0x800) {\n byteArray[0] = 0xe0 | ((code & 0xf000) >>> 12)\n byteArray[1] = 0x80 | ((code & 0xfc0) >>> 6)\n byteArray[2] = 0x80 | (code & 0x3f)\n } else if (code > 0x80) {\n byteArray[0] = 0xc0 | ((code & 0x7c0) >>> 6)\n byteArray[1] = 0x80 | (code & 0x3f)\n } else {\n byteArray[0] = code\n }\n this.parsedData.push(byteArray)\n }\n this.parsedData = Array.prototype.concat.apply([], this.parsedData)\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191)\n this.parsedData.unshift(187)\n this.parsedData.unshift(239)\n }\n }\n\n QR8bitByte.prototype = {\n getLength: function(buffer) {\n return this.parsedData.length\n },\n write: function(buffer) {\n for (var i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8)\n }\n }\n }\n function QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber\n this.errorCorrectLevel = errorCorrectLevel\n this.modules = null\n this.moduleCount = 0\n this.dataCache = null\n this.dataList = []\n }\n\n QRCodeModel.prototype = {\n addData: function(data) {\n var newData = new QR8bitByte(data)\n this.dataList.push(newData)\n this.dataCache = null\n },\n isDark: function(row, col) {\n if (\n row < 0 ||\n this.moduleCount <= row ||\n col < 0 ||\n this.moduleCount <= col\n ) {\n throw new Error(row + ',' + col)\n }\n return this.modules[row][col]\n },\n getModuleCount: function() {\n return this.moduleCount\n },\n make: function() {\n /////////////////////////////////////////////\n if (this.typeNumber < 1) {\n var typeNumber = 1\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(\n typeNumber,\n this.errorCorrectLevel\n )\n\n var buffer = new QRBitBuffer()\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n var data = this.dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber)\n )\n data.write(buffer)\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break\n }\n this.typeNumber = typeNumber\n }\n /////////////////////////////////////////////\n this.makeImpl(!1, this.getBestMaskPattern())\n },\n makeImpl: function(test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17\n this.modules = new Array(this.moduleCount)\n for (var row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount)\n for (var col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null\n }\n }\n this.setupPositionProbePattern(0, 0)\n this.setupPositionProbePattern(this.moduleCount - 7, 0)\n this.setupPositionProbePattern(0, this.moduleCount - 7)\n this.setupPositionAdjustPattern()\n this.setupTimingPattern()\n this.setupTypeInfo(test, maskPattern)\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test)\n }\n if (this.dataCache == null) {\n this.dataCache = QRCodeModel.createData(\n this.typeNumber,\n this.errorCorrectLevel,\n this.dataList\n )\n }\n this.mapData(this.dataCache, maskPattern)\n },\n setupPositionProbePattern: function(row, col) {\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = !0\n } else {\n this.modules[row + r][col + c] = !1\n }\n }\n }\n },\n getBestMaskPattern: function() {\n var minLostPoint = 0\n var pattern = 0\n for (var i = 0; i < 8; i++) {\n this.makeImpl(!0, i)\n var lostPoint = QRUtil.getLostPoint(this)\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint\n pattern = i\n }\n }\n return pattern\n },\n createMovieClip: function(target_mc, instance_name, depth) {\n var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth)\n var cs = 1\n this.make()\n for (var row = 0; row < this.modules.length; row++) {\n var y = row * cs\n for (var col = 0; col < this.modules[row].length; col++) {\n var x = col * cs\n var dark = this.modules[row][col]\n if (dark) {\n qr_mc.beginFill(0, 100)\n qr_mc.moveTo(x, y)\n qr_mc.lineTo(x + cs, y)\n qr_mc.lineTo(x + cs, y + cs)\n qr_mc.lineTo(x, y + cs)\n qr_mc.endFill()\n }\n }\n }\n return qr_mc\n },\n setupTimingPattern: function() {\n for (var r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue\n }\n this.modules[r][6] = r % 2 == 0\n }\n for (var c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue\n }\n this.modules[6][c] = c % 2 == 0\n }\n },\n setupPositionAdjustPattern: function() {\n var pos = QRUtil.getPatternPosition(this.typeNumber)\n for (var i = 0; i < pos.length; i++) {\n for (var j = 0; j < pos.length; j++) {\n var row = pos[i]\n var col = pos[j]\n if (this.modules[row][col] != null) {\n continue\n }\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (\n r == -2 ||\n r == 2 ||\n c == -2 ||\n c == 2 ||\n (r == 0 && c == 0)\n ) {\n this.modules[row + r][col + c] = !0\n } else {\n this.modules[row + r][col + c] = !1\n }\n }\n }\n }\n }\n },\n setupTypeNumber: function(test) {\n var bits = QRUtil.getBCHTypeNumber(this.typeNumber)\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[Math.floor(i / 3)][\n (i % 3) + this.moduleCount - 8 - 3\n ] = mod\n }\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n this.modules[(i % 3) + this.moduleCount - 8 - 3][\n Math.floor(i / 3)\n ] = mod\n }\n },\n setupTypeInfo: function(test, maskPattern) {\n var data = (this.errorCorrectLevel << 3) | maskPattern\n var bits = QRUtil.getBCHTypeInfo(data)\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n if (i < 6) {\n this.modules[i][8] = mod\n } else if (i < 8) {\n this.modules[i + 1][8] = mod\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod\n }\n }\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod\n } else {\n this.modules[8][15 - i - 1] = mod\n }\n }\n this.modules[this.moduleCount - 8][8] = !test\n },\n mapData: function(data, maskPattern) {\n var inc = -1\n var row = this.moduleCount - 1\n var bitIndex = 7\n var byteIndex = 0\n for (var col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--\n while (!0) {\n for (var c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n var dark = !1\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1\n }\n var mask = QRUtil.getMask(maskPattern, row, col - c)\n if (mask) {\n dark = !dark\n }\n this.modules[row][col - c] = dark\n bitIndex--\n if (bitIndex == -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n row += inc\n if (row < 0 || this.moduleCount <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n }\n }\n QRCodeModel.PAD0 = 0xec\n QRCodeModel.PAD1 = 0x11\n QRCodeModel.createData = function(typeNumber, errorCorrectLevel, dataList) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel)\n var buffer = new QRBitBuffer()\n for (var i = 0; i < dataList.length; i++) {\n var data = dataList[i]\n buffer.put(data.mode, 4)\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber)\n )\n data.write(buffer)\n }\n var totalDataCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount\n }\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n 'code length overflow. (' +\n buffer.getLengthInBits() +\n '>' +\n totalDataCount * 8 +\n ')'\n )\n }\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4)\n }\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(!1)\n }\n while (!0) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD0, 8)\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break\n }\n buffer.put(QRCodeModel.PAD1, 8)\n }\n return QRCodeModel.createBytes(buffer, rsBlocks)\n }\n QRCodeModel.createBytes = function(buffer, rsBlocks) {\n var offset = 0\n var maxDcCount = 0\n var maxEcCount = 0\n var dcdata = new Array(rsBlocks.length)\n var ecdata = new Array(rsBlocks.length)\n for (var r = 0; r < rsBlocks.length; r++) {\n var dcCount = rsBlocks[r].dataCount\n var ecCount = rsBlocks[r].totalCount - dcCount\n maxDcCount = Math.max(maxDcCount, dcCount)\n maxEcCount = Math.max(maxEcCount, ecCount)\n dcdata[r] = new Array(dcCount)\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset]\n }\n offset += dcCount\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount)\n var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1)\n var modPoly = rawPoly.mod(rsPoly)\n ecdata[r] = new Array(rsPoly.getLength() - 1)\n for (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0\n }\n }\n var totalCodeCount = 0\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount\n }\n var data = new Array(totalCodeCount)\n var index = 0\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i]\n }\n }\n }\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i]\n }\n }\n }\n return data\n }\n var QRMode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3\n }\n var QRErrorCorrectLevel = { L: 1, M: 0, Q: 3, H: 2 }\n var QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n }\n var QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ],\n G15:\n (1 << 10) |\n (1 << 8) |\n (1 << 5) |\n (1 << 4) |\n (1 << 2) |\n (1 << 1) |\n (1 << 0),\n G18:\n (1 << 12) |\n (1 << 11) |\n (1 << 10) |\n (1 << 9) |\n (1 << 8) |\n (1 << 5) |\n (1 << 2) |\n (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n getBCHTypeInfo: function(data) {\n var d = data << 10\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^=\n QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK\n },\n getBCHTypeNumber: function(data) {\n var d = data << 12\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^=\n QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))\n }\n return (data << 12) | d\n },\n getBCHDigit: function(data) {\n var digit = 0\n while (data != 0) {\n digit++\n data >>>= 1\n }\n return digit\n },\n getPatternPosition: function(typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]\n },\n getMask: function(maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0\n default:\n throw new Error('bad maskPattern:' + maskPattern)\n }\n },\n getErrorCorrectPolynomial: function(errorCorrectLength) {\n var a = new QRPolynomial([1], 0)\n for (var i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0))\n }\n return a\n },\n getLengthInBits: function(mode, type) {\n if (1 <= type && type < 10) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 10\n case QRMode.MODE_ALPHA_NUM:\n return 9\n case QRMode.MODE_8BIT_BYTE:\n return 8\n case QRMode.MODE_KANJI:\n return 8\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 27) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 12\n case QRMode.MODE_ALPHA_NUM:\n return 11\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 10\n default:\n throw new Error('mode:' + mode)\n }\n } else if (type < 41) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 14\n case QRMode.MODE_ALPHA_NUM:\n return 13\n case QRMode.MODE_8BIT_BYTE:\n return 16\n case QRMode.MODE_KANJI:\n return 12\n default:\n throw new Error('mode:' + mode)\n }\n } else {\n throw new Error('type:' + type)\n }\n },\n getLostPoint: function(qrCode) {\n var moduleCount = qrCode.getModuleCount()\n var lostPoint = 0\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n var sameCount = 0\n var dark = qrCode.isDark(row, col)\n for (var r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue\n }\n for (var c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue\n }\n if (r == 0 && c == 0) {\n continue\n }\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++\n }\n }\n }\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5\n }\n }\n }\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n var count = 0\n if (qrCode.isDark(row, col)) count++\n if (qrCode.isDark(row + 1, col)) count++\n if (qrCode.isDark(row, col + 1)) count++\n if (qrCode.isDark(row + 1, col + 1)) count++\n if (count == 0 || count == 4) {\n lostPoint += 3\n }\n }\n }\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40\n }\n }\n }\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40\n }\n }\n }\n var darkCount = 0\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++\n }\n }\n }\n var ratio =\n Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5\n lostPoint += ratio * 10\n return lostPoint\n }\n }\n var QRMath = {\n glog: function(n) {\n if (n < 1) {\n throw new Error('glog(' + n + ')')\n }\n return QRMath.LOG_TABLE[n]\n },\n gexp: function(n) {\n while (n < 0) {\n n += 255\n }\n while (n >= 256) {\n n -= 255\n }\n return QRMath.EXP_TABLE[n]\n },\n EXP_TABLE: new Array(256),\n LOG_TABLE: new Array(256)\n }\n for (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i\n }\n for (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8]\n }\n for (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i\n }\n function QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + '/' + shift)\n }\n var offset = 0\n while (offset < num.length && num[offset] == 0) {\n offset++\n }\n this.num = new Array(num.length - offset + shift)\n for (var i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset]\n }\n }\n\n QRPolynomial.prototype = {\n get: function(index) {\n return this.num[index]\n },\n getLength: function() {\n return this.num.length\n },\n multiply: function(e) {\n var num = new Array(this.getLength() + e.getLength() - 1)\n for (var i = 0; i < this.getLength(); i++) {\n for (var j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(\n QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))\n )\n }\n }\n return new QRPolynomial(num, 0)\n },\n mod: function(e) {\n if (this.getLength() - e.getLength() < 0) {\n return this\n }\n var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0))\n var num = new Array(this.getLength())\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i)\n }\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio)\n }\n return new QRPolynomial(num, 0).mod(e)\n }\n }\n function QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount\n this.dataCount = dataCount\n }\n\n QRRSBlock.RS_BLOCK_TABLE = [\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ]\n QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel)\n if (rsBlock == undefined) {\n throw new Error(\n 'bad rs block @ typeNumber:' +\n typeNumber +\n '/errorCorrectLevel:' +\n errorCorrectLevel\n )\n }\n var length = rsBlock.length / 3\n var list = []\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0]\n var totalCount = rsBlock[i * 3 + 1]\n var dataCount = rsBlock[i * 3 + 2]\n for (var j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount))\n }\n }\n return list\n }\n QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case QRErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]\n case QRErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]\n case QRErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]\n case QRErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]\n default:\n return undefined\n }\n }\n function QRBitBuffer() {\n this.buffer = []\n this.length = 0\n }\n\n QRBitBuffer.prototype = {\n get: function(index) {\n var bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1\n },\n put: function(num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1)\n }\n },\n getLengthInBits: function() {\n return this.length\n },\n putBit: function(bit) {\n var bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8\n }\n this.length++\n }\n }\n var QRCodeLimitLength = [\n [17, 14, 11, 7],\n [32, 26, 20, 14],\n [53, 42, 32, 24],\n [78, 62, 46, 34],\n [106, 84, 60, 44],\n [134, 106, 74, 58],\n [154, 122, 86, 64],\n [192, 152, 108, 84],\n [230, 180, 130, 98],\n [271, 213, 151, 119],\n [321, 251, 177, 137],\n [367, 287, 203, 155],\n [425, 331, 241, 177],\n [458, 362, 258, 194],\n [520, 412, 292, 220],\n [586, 450, 322, 250],\n [644, 504, 364, 280],\n [718, 560, 394, 310],\n [792, 624, 442, 338],\n [858, 666, 482, 382],\n [929, 711, 509, 403],\n [1003, 779, 565, 439],\n [1091, 857, 611, 461],\n [1171, 911, 661, 511],\n [1273, 997, 715, 535],\n [1367, 1059, 751, 593],\n [1465, 1125, 805, 625],\n [1528, 1190, 868, 658],\n [1628, 1264, 908, 698],\n [1732, 1370, 982, 742],\n [1840, 1452, 1030, 790],\n [1952, 1538, 1112, 842],\n [2068, 1628, 1168, 898],\n [2188, 1722, 1228, 958],\n [2303, 1809, 1283, 983],\n [2431, 1911, 1351, 1051],\n [2563, 1989, 1423, 1093],\n [2699, 2099, 1499, 1139],\n [2809, 2213, 1579, 1219],\n [2953, 2331, 1663, 1273]\n ]\n\n function _isSupportCanvas() {\n return typeof CanvasRenderingContext2D != 'undefined'\n }\n\n var Drawing = !_isSupportCanvas()\n ? (function() {\n var Drawing = function(htOption) {\n this._htOption = htOption\n }\n\n Drawing.prototype.draw = function(oQRCode) {\n var _htOption = this._htOption\n var nCount = oQRCode.getModuleCount()\n var nWidth = Math.floor(_htOption.size / nCount)\n var nHeight = Math.floor(_htOption.size / nCount)\n var aHTML = ['']\n\n for (var row = 0; row < nCount; row++) {\n aHTML.push('')\n\n for (var col = 0; col < nCount; col++) {\n aHTML.push(\n ''\n )\n }\n\n aHTML.push('')\n }\n\n aHTML.push('
')\n\n var nLeftMarginTable = (_htOption.size - elTable.offsetWidth) / 2\n var nTopMarginTable = (_htOption.size - elTable.offsetHeight) / 2\n\n if (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n elTable.style.margin =\n nTopMarginTable + 'px ' + nLeftMarginTable + 'px'\n }\n }\n\n Drawing.prototype.clear = function() {}\n\n return Drawing\n })()\n : (function() {\n // Drawing in Canvas\n function _onMakeImage() {\n this._elImage.src = this._elCanvas.toDataURL('image/png')\n this._elImage.style.display = 'block'\n this._elCanvas.style.display = 'none'\n }\n\n function _safeSetDataURI(fSuccess, fFail) {\n var self = this\n self._fFail = fFail\n self._fSuccess = fSuccess\n\n // Check it just once\n if (self._bSupportDataURI === null) {\n var el = document.createElement('img')\n var fOnError = function() {\n self._bSupportDataURI = false\n\n if (self._fFail) {\n self._fFail.call(self)\n }\n }\n var fOnSuccess = function() {\n self._bSupportDataURI = true\n\n if (self._fSuccess) {\n self._fSuccess.call(self)\n }\n }\n\n el.onabort = fOnError\n el.onerror = fOnError\n el.onload = fOnSuccess\n el.src =\n 'data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==' // the Image contains 1px data.\n return\n } else if (self._bSupportDataURI === true && self._fSuccess) {\n self._fSuccess.call(self)\n } else if (self._bSupportDataURI === false && self._fFail) {\n self._fFail.call(self)\n }\n }\n\n var Drawing = function(htOption) {\n this._bIsPainted = false\n\n this._htOption = htOption\n this._elCanvas = document.createElement('canvas')\n this._elCanvas.width = htOption.size\n this._elCanvas.height = htOption.size\n this._oContext = this._elCanvas.getContext('2d')\n this._bIsPainted = false\n this._elImage = document.createElement('img')\n this._elImage.alt = 'Scan me!'\n this._elImage.style.display = 'none'\n this._bSupportDataURI = null\n this._callback = htOption.callback\n this._bindElement = htOption.bindElement\n }\n\n Drawing.prototype.draw = function(oQRCode) {\n var _elImage = this._elImage\n var _tCanvas = document.createElement('canvas')\n var _oContext = _tCanvas.getContext('2d')\n // var _oContext = this._oContext;\n var _htOption = this._htOption\n\n var nCount = oQRCode.getModuleCount()\n var rawSize = _htOption.size\n var rawMargin = _htOption.margin\n\n if (rawMargin < 0 || rawMargin * 2 >= rawSize) {\n rawMargin = 0\n }\n\n var margin = Math.ceil(rawMargin)\n\n var rawViewportSize = rawSize - 2 * rawMargin\n\n var whiteMargin = _htOption.whiteMargin\n var backgroundDimming = _htOption.backgroundDimming\n var rawWidth = rawViewportSize / nCount\n var rawHeight = rawWidth\n var nWidth = Math.ceil(rawWidth)\n var nHeight = nWidth\n var viewportSize = nWidth * nCount\n var size = viewportSize + 2 * margin\n\n _tCanvas.width = size\n _tCanvas.height = size\n\n // We've banned these naughty log outputs\n // console.log(\"rawSize=\" + rawSize + \", drawSize=\" + size);\n // console.log(\"rawViewportSize=\" + rawViewportSize + \", drawViewportSize=\" + viewportSize);\n // console.log(\"rawWidth=rawHeight=\" + rawWidth + \", drawWidth=drawHeight=\" + nWidth);\n\n var dotScale = _htOption.dotScale\n _elImage.style.display = 'none'\n this.clear()\n\n if (dotScale <= 0 || dotScale > 1) {\n dotScale = 0.35\n }\n\n _oContext.save()\n _oContext.translate(margin, margin)\n\n //_oContext.rect(whiteMargin ? 0 : -margin, whiteMargin ? 0 : -margin, size, size);\n //_oContext.fillStyle = \"#ffffff\";\n //_oContext.fill();\n\n var _bkgCanvas = document.createElement('canvas')\n _bkgCanvas.width = size\n _bkgCanvas.height = size\n var _bContext = _bkgCanvas.getContext('2d')\n\n var _maskCanvas = undefined\n var _mContext = undefined\n\n if (_htOption.backgroundImage !== undefined) {\n if (_htOption.autoColor) {\n var avgRGB = getAverageRGB(_htOption.backgroundImage)\n _htOption.colorDark =\n 'rgb(' + avgRGB.r + ', ' + avgRGB.g + ', ' + avgRGB.b + ')'\n }\n\n if (_htOption.maskedDots) {\n _maskCanvas = document.createElement('canvas')\n _maskCanvas.width = size\n _maskCanvas.height = size\n _mContext = _maskCanvas.getContext('2d')\n /*\n _mContext.drawImage(_htOption.backgroundImage,\n 0, 0, _htOption.backgroundImage.width, _htOption.backgroundImage.height,\n whiteMargin ? 0 : -margin, whiteMargin ? 0 : -margin, whiteMargin ? viewportSize : size, whiteMargin ? viewportSize : size);\n */\n _mContext.drawImage(\n _htOption.backgroundImage,\n 0,\n 0,\n _htOption.backgroundImage.width,\n _htOption.backgroundImage.height,\n 0,\n 0,\n size,\n size\n )\n\n _bContext.rect(0, 0, size, size)\n _bContext.fillStyle = '#ffffff'\n _bContext.fill()\n } else {\n /*\n _bContext.drawImage(_htOption.backgroundImage,\n 0, 0, _htOption.backgroundImage.width, _htOption.backgroundImage.height,\n whiteMargin ? 0 : -margin, whiteMargin ? 0 : -margin, whiteMargin ? viewportSize : size, whiteMargin ? viewportSize : size);\n */\n _bContext.drawImage(\n _htOption.backgroundImage,\n 0,\n 0,\n _htOption.backgroundImage.width,\n _htOption.backgroundImage.height,\n 0,\n 0,\n size,\n size\n )\n _bContext.rect(0, 0, size, size)\n _bContext.fillStyle = backgroundDimming\n _bContext.fill()\n }\n } else {\n _bContext.rect(0, 0, size, size)\n _bContext.fillStyle = '#ffffff'\n _bContext.fill()\n }\n\n if (_htOption.binarize) {\n _htOption.colorDark = '#000000'\n _htOption.colorLight = '#FFFFFF'\n }\n\n var agnPatternCenter = QRUtil.getPatternPosition(oQRCode.typeNumber)\n\n var xyOffset = (1 - dotScale) * 0.5\n for (var row = 0; row < nCount; row++) {\n for (var col = 0; col < nCount; col++) {\n var bIsDark = oQRCode.isDark(row, col)\n\n // var isBlkPosCtr = ((col < 8 && (row < 8 || row >= nCount - 8)) || (col >= nCount - 8 && row < 8) || (col < nCount - 4 && col >= nCount - 4 - 5 && row < nCount - 4 && row >= nCount - 4 - 5));\n var isBlkPosCtr =\n (col < 8 && (row < 8 || row >= nCount - 8)) ||\n (col >= nCount - 8 && row < 8)\n var isBlkPos =\n (col < 7 && (row < 7 || row >= nCount - 7)) ||\n (col >= nCount - 7 && row < 7)\n var bProtected = row === 6 || col === 6 || isBlkPosCtr\n\n for (var i = 0; i < agnPatternCenter.length - 1; i++) {\n bProtected =\n bProtected ||\n (row >= agnPatternCenter[i] - 2 &&\n row <= agnPatternCenter[i] + 2 &&\n col >= agnPatternCenter[i] - 2 &&\n col <= agnPatternCenter[i] + 2)\n }\n\n var nLeft = col * nWidth + (bProtected ? 0 : xyOffset * nWidth)\n var nTop = row * nHeight + (bProtected ? 0 : xyOffset * nHeight)\n _oContext.strokeStyle = bIsDark\n ? _htOption.colorDark\n : _htOption.colorLight\n _oContext.lineWidth = 0.5\n _oContext.fillStyle = bIsDark\n ? _htOption.colorDark\n : 'rgba(255, 255, 255, 0.6)' //_htOption.colorLight;\n if (agnPatternCenter.length === 0) {\n // if align pattern list is empty, then it means that we don't need to leave room for the align patterns\n if (!bProtected)\n fillRect_(\n _oContext,\n nLeft,\n nTop,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nWidth,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nHeight,\n _maskCanvas,\n bIsDark\n )\n } else {\n var inAgnRange =\n col < nCount - 4 &&\n col >= nCount - 4 - 5 &&\n row < nCount - 4 &&\n row >= nCount - 4 - 5\n if (!bProtected && !inAgnRange)\n fillRect_(\n _oContext,\n nLeft,\n nTop,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nWidth,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nHeight,\n _maskCanvas,\n bIsDark\n )\n }\n }\n }\n\n var protectorStyle = 'rgba(255, 255, 255, 0.6)'\n _oContext.fillStyle = protectorStyle\n /*\n fillRect_(_oContext, 0, 0, 8 * nWidth, 8 * nHeight, maskImg);\n fillRect_(_oContext, 0, (nCount - 8) * nHeight, 8 * nWidth, 8 * nHeight, maskImg);\n fillRect_(_oContext, (nCount - 8) * nWidth, 0, 8 * nWidth, 8 * nHeight, maskImg);\n fillRect_(_oContext, 8 * nWidth, 6 * nHeight, (nCount - 8 - 8) * nWidth, nHeight, maskImg);\n fillRect_(_oContext, 6 * nWidth, 8 * nHeight, nWidth, (nCount - 8 - 8) * nHeight, maskImg);\n */\n _oContext.fillRect(0, 0, 8 * nWidth, 8 * nHeight)\n _oContext.fillRect(0, (nCount - 8) * nHeight, 8 * nWidth, 8 * nHeight)\n _oContext.fillRect((nCount - 8) * nWidth, 0, 8 * nWidth, 8 * nHeight)\n _oContext.fillRect(\n 8 * nWidth,\n 6 * nHeight,\n (nCount - 8 - 8) * nWidth,\n nHeight\n )\n _oContext.fillRect(\n 6 * nWidth,\n 8 * nHeight,\n nWidth,\n (nCount - 8 - 8) * nHeight\n )\n\n var edgeCenter = agnPatternCenter[agnPatternCenter.length - 1]\n for (var i = 0; i < agnPatternCenter.length; i++) {\n for (var j = 0; j < agnPatternCenter.length; j++) {\n var agnX = agnPatternCenter[j]\n var agnY = agnPatternCenter[i]\n if (agnX === 6 && (agnY === 6 || agnY === edgeCenter)) {\n continue\n } else if (agnY === 6 && (agnX === 6 || agnX === edgeCenter)) {\n continue\n } else if (\n agnX !== 6 &&\n agnX !== edgeCenter &&\n agnY !== 6 &&\n agnY !== edgeCenter\n ) {\n drawAgnProtector(_oContext, agnX, agnY, nWidth, nHeight)\n } else {\n drawAgnProtector(_oContext, agnX, agnY, nWidth, nHeight)\n }\n // console.log(\"agnX=\" + agnX + \", agnY=\" + agnX);\n }\n }\n\n _oContext.fillStyle = _htOption.colorDark\n\n /*\n fillRect_(_oContext, 0, 0, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, (nCount - 7) * nWidth, 0, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, 0, 6 * nHeight, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, (nCount - 7) * nWidth, 6 * nHeight, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, 0, (nCount - 7) * nHeight, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, 0, (nCount - 7 + 6) * nHeight, 7 * nWidth, nHeight, _maskCanvas,true);\n fillRect_(_oContext, 0, 0, nWidth, 7 * nHeight, _maskCanvas,true);\n fillRect_(_oContext, 6 * nWidth, 0, nWidth, 7 * nHeight, _maskCanvas,true);\n fillRect_(_oContext, (nCount - 7) * nWidth, 0, nWidth, 7 * nHeight, _maskCanvas,true);\n fillRect_(_oContext, (nCount - 7 + 6) * nWidth, 0, nWidth, 7 * nHeight, _maskCanvas,true);\n fillRect_(_oContext, 0, (nCount - 7) * nHeight, nWidth, 7 * nHeight, _maskCanvas,true);\n fillRect_(_oContext, 6 * nWidth, (nCount - 7) * nHeight, nWidth, 7 * nHeight, _maskCanvas,true);\n */\n\n _oContext.fillRect(0, 0, 7 * nWidth, nHeight)\n _oContext.fillRect((nCount - 7) * nWidth, 0, 7 * nWidth, nHeight)\n _oContext.fillRect(0, 6 * nHeight, 7 * nWidth, nHeight)\n _oContext.fillRect(\n (nCount - 7) * nWidth,\n 6 * nHeight,\n 7 * nWidth,\n nHeight\n )\n _oContext.fillRect(0, (nCount - 7) * nHeight, 7 * nWidth, nHeight)\n _oContext.fillRect(0, (nCount - 7 + 6) * nHeight, 7 * nWidth, nHeight)\n _oContext.fillRect(0, 0, nWidth, 7 * nHeight)\n _oContext.fillRect(6 * nWidth, 0, nWidth, 7 * nHeight)\n _oContext.fillRect((nCount - 7) * nWidth, 0, nWidth, 7 * nHeight)\n _oContext.fillRect((nCount - 7 + 6) * nWidth, 0, nWidth, 7 * nHeight)\n _oContext.fillRect(0, (nCount - 7) * nHeight, nWidth, 7 * nHeight)\n _oContext.fillRect(\n 6 * nWidth,\n (nCount - 7) * nHeight,\n nWidth,\n 7 * nHeight\n )\n\n _oContext.fillRect(2 * nWidth, 2 * nHeight, 3 * nWidth, 3 * nHeight)\n _oContext.fillRect(\n (nCount - 7 + 2) * nWidth,\n 2 * nHeight,\n 3 * nWidth,\n 3 * nHeight\n )\n _oContext.fillRect(\n 2 * nWidth,\n (nCount - 7 + 2) * nHeight,\n 3 * nWidth,\n 3 * nHeight\n )\n\n for (var i = 0; i < nCount - 8; i += 2) {\n _oContext.fillRect((8 + i) * nWidth, 6 * nHeight, nWidth, nHeight)\n _oContext.fillRect(6 * nWidth, (8 + i) * nHeight, nWidth, nHeight)\n }\n for (var i = 0; i < agnPatternCenter.length; i++) {\n for (var j = 0; j < agnPatternCenter.length; j++) {\n var agnX = agnPatternCenter[j]\n var agnY = agnPatternCenter[i]\n if (agnX === 6 && (agnY === 6 || agnY === edgeCenter)) {\n continue\n } else if (agnY === 6 && (agnX === 6 || agnX === edgeCenter)) {\n continue\n } else if (\n agnX !== 6 &&\n agnX !== edgeCenter &&\n agnY !== 6 &&\n agnY !== edgeCenter\n ) {\n _oContext.fillStyle = 'rgba(0, 0, 0, .2)'\n drawAgn(_oContext, agnX, agnY, nWidth, nHeight)\n } else {\n _oContext.fillStyle = _htOption.colorDark\n drawAgn(_oContext, agnX, agnY, nWidth, nHeight)\n }\n }\n }\n\n if (whiteMargin) {\n _oContext.fillStyle = '#FFFFFF'\n\n _oContext.fillRect(-margin, -margin, size, margin)\n _oContext.fillRect(-margin, viewportSize, size, margin)\n _oContext.fillRect(viewportSize, -margin, margin, size)\n _oContext.fillRect(-margin, -margin, margin, size)\n }\n\n if (_htOption.logoImage !== undefined) {\n var logoScale = _htOption.logoScale\n var logoMargin = _htOption.logoMargin\n var logoCornerRadius = _htOption.logoCornerRadius\n if (logoScale <= 0 || logoScale >= 1.0) {\n logoScale = 0.2\n }\n if (logoMargin < 0) {\n logoMargin = 0\n }\n if (logoCornerRadius < 0) {\n logoCornerRadius = 0\n }\n\n _oContext.restore()\n\n var logoSize = viewportSize * logoScale\n var x = 0.5 * (size - logoSize)\n var y = x\n\n _oContext.fillStyle = '#FFFFFF'\n _oContext.save()\n prepareRoundedCornerClip(\n _oContext,\n x - logoMargin,\n y - logoMargin,\n logoSize + 2 * logoMargin,\n logoSize + 2 * logoMargin,\n logoCornerRadius\n )\n _oContext.clip()\n _oContext.fill()\n _oContext.restore()\n\n _oContext.save()\n prepareRoundedCornerClip(\n _oContext,\n x,\n y,\n logoSize,\n logoSize,\n logoCornerRadius\n )\n _oContext.clip()\n _oContext.drawImage(_htOption.logoImage, x, y, logoSize, logoSize)\n _oContext.restore()\n }\n\n _bContext.drawImage(_tCanvas, 0, 0, size, size)\n _oContext.drawImage(_bkgCanvas, -margin, -margin, size, size)\n\n if (_htOption.binarize) {\n var pixels = _oContext.getImageData(0, 0, size, size)\n var threshold = 128\n if (\n parseInt(_htOption.binarizeThreshold) > 0 &&\n parseInt(_htOption.binarizeThreshold) < 255\n ) {\n threshold = parseInt(_htOption.binarizeThreshold)\n }\n for (var i = 0; i < pixels.data.length; i += 4) {\n var R = pixels.data[i] //R(0-255)\n var G = pixels.data[i + 1] //G(0-255)\n var B = pixels.data[i + 2] //G(0-255)\n var sum = rgb2gray(R, G, B)\n if (sum > threshold) {\n pixels.data[i] = 255\n pixels.data[i + 1] = 255\n pixels.data[i + 2] = 255\n } else {\n pixels.data[i] = 0\n pixels.data[i + 1] = 0\n pixels.data[i + 2] = 0\n }\n }\n _oContext.putImageData(pixels, 0, 0)\n }\n\n var _fCanvas = document.createElement('canvas')\n var _fContext = _fCanvas.getContext('2d')\n _fCanvas.width = rawSize\n _fCanvas.height = rawSize\n _fContext.drawImage(_tCanvas, 0, 0, rawSize, rawSize)\n this._elCanvas = _fCanvas\n\n this._bIsPainted = true\n if (this._callback !== undefined) {\n this._callback(this._elCanvas.toDataURL())\n }\n if (this._bindElement !== undefined) {\n try {\n var el = document.getElementById(this._bindElement)\n if (el.nodeName === 'IMG') {\n el.src = this._elCanvas.toDataURL()\n } else {\n var elStyle = el.style\n elStyle['background-image'] =\n 'url(' + this._elCanvas.toDataURL() + ')'\n elStyle['background-size'] = 'contain'\n elStyle['background-repeat'] = 'no-repeat'\n }\n } catch (e) {\n console.error(e)\n }\n }\n }\n\n Drawing.prototype.makeImage = function() {\n if (this._bIsPainted) {\n _safeSetDataURI.call(this, _onMakeImage)\n }\n }\n\n Drawing.prototype.isPainted = function() {\n return this._bIsPainted\n }\n\n Drawing.prototype.clear = function() {\n this._oContext.clearRect(\n 0,\n 0,\n this._elCanvas.width,\n this._elCanvas.height\n )\n this._bIsPainted = false\n }\n\n Drawing.prototype.round = function(nNumber) {\n if (!nNumber) {\n return nNumber\n }\n\n return Math.floor(nNumber * 1000) / 1000\n }\n\n return Drawing\n })()\n\n function prepareRoundedCornerClip(ctx, x, y, w, h, r) {\n ctx.beginPath()\n ctx.moveTo(x, y)\n ctx.arcTo(x + w, y, x + w, y + h, r)\n ctx.arcTo(x + w, y + h, x, y + h, r)\n ctx.arcTo(x, y + h, x, y, r)\n ctx.arcTo(x, y, x + w, y, r)\n ctx.closePath()\n }\n\n function rgb2gray(r, g, b) {\n return 0.3 * r + 0.59 * b + 0.11 * b\n }\n\n function fillRect_(canvas, x, y, w, h, maskSrc) {\n //console.log(\"maskSrc=\" + maskSrc);\n if (maskSrc === undefined) {\n canvas.fillRect(x, y, w, h)\n } else {\n canvas.drawImage(maskSrc, x, y, w, h, x, y, w, h)\n }\n }\n\n function fillRect_(canvas, x, y, w, h, maskSrc, bDark) {\n //console.log(\"maskSrc=\" + maskSrc);\n if (maskSrc === undefined) {\n canvas.fillRect(x, y, w, h)\n } else {\n canvas.drawImage(maskSrc, x, y, w, h, x, y, w, h)\n var fill_ = canvas.fillStyle\n canvas.fillStyle = bDark ? 'rgba(0, 0, 0, .5)' : 'rgba(255, 255, 255, .7)'\n canvas.fillRect(x, y, w, h)\n canvas.fillStyle = fill_\n }\n }\n\n function drawAgnProtector(context, centerX, centerY, nWidth, nHeight) {\n context.clearRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n 5 * nWidth,\n 5 * nHeight\n )\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n 5 * nWidth,\n 5 * nHeight\n )\n }\n\n function drawAgn(context, centerX, centerY, nWidth, nHeight) {\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n nWidth,\n 4 * nHeight\n )\n context.fillRect(\n (centerX + 2) * nWidth,\n (centerY - 2 + 1) * nHeight,\n nWidth,\n 4 * nHeight\n )\n context.fillRect(\n (centerX - 2 + 1) * nWidth,\n (centerY - 2) * nHeight,\n 4 * nWidth,\n nHeight\n )\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY + 2) * nHeight,\n 4 * nWidth,\n nHeight\n )\n context.fillRect(centerX * nWidth, centerY * nHeight, nWidth, nHeight)\n }\n\n function _getTypeNumber(sText, nCorrectLevel) {\n var nType = 1\n var length = _getUTF8Length(sText)\n\n for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n var nLimit = 0\n\n switch (nCorrectLevel) {\n case QRErrorCorrectLevel.L:\n nLimit = QRCodeLimitLength[i][0]\n break\n case QRErrorCorrectLevel.M:\n nLimit = QRCodeLimitLength[i][1]\n break\n case QRErrorCorrectLevel.Q:\n nLimit = QRCodeLimitLength[i][2]\n break\n case QRErrorCorrectLevel.H:\n nLimit = QRCodeLimitLength[i][3]\n break\n }\n\n if (length <= nLimit) {\n break\n } else {\n nType++\n }\n }\n\n if (nType > QRCodeLimitLength.length) {\n throw new Error('Too long data')\n }\n\n return nType\n }\n\n function _getUTF8Length(sText) {\n var replacedText = encodeURI(sText)\n .toString()\n .replace(/\\%[0-9a-fA-F]{2}/g, 'a')\n return replacedText.length + (replacedText.length != sText ? 3 : 0)\n }\n\n AwesomeQRCode = function() {}\n\n AwesomeQRCode.prototype.create = function(vOption) {\n this._htOption = {\n size: 800,\n margin: 20,\n typeNumber: 4,\n colorDark: '#000000',\n colorLight: '#ffffff',\n correctLevel: QRErrorCorrectLevel.M,\n backgroundImage: undefined,\n backgroundDimming: 'rgba(0,0,0,0)',\n logoImage: undefined,\n logoScale: 0.2,\n logoMargin: 6,\n logoCornerRadius: 8,\n whiteMargin: true,\n dotScale: 0.35,\n maskedDots: false,\n autoColor: true,\n binarize: false,\n binarizeThreshold: 128,\n callback: undefined,\n bindElement: undefined\n }\n\n if (typeof vOption === 'string') {\n vOption = {\n text: vOption\n }\n }\n\n if (vOption) {\n for (var i in vOption) {\n this._htOption[i] = vOption[i]\n }\n }\n\n if (this._htOption.useSVG) {\n Drawing = svgDrawer\n }\n\n this._oQRCode = null\n this._oDrawing = new Drawing(this._htOption)\n\n if (this._htOption.text) {\n this.makeCode(this._htOption.text)\n }\n }\n\n AwesomeQRCode.prototype.makeCode = function(sText) {\n //this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n this._oQRCode = new QRCodeModel(-1, this._htOption.correctLevel)\n this._oQRCode.addData(sText)\n this._oQRCode.make()\n this._oDrawing.draw(this._oQRCode)\n this.makeImage()\n }\n\n AwesomeQRCode.prototype.makeImage = function() {\n if (typeof this._oDrawing.makeImage == 'function') {\n this._oDrawing.makeImage()\n }\n }\n\n AwesomeQRCode.prototype.clear = function() {\n this._oDrawing.clear()\n }\n\n AwesomeQRCode.CorrectLevel = QRErrorCorrectLevel\n\n function getAverageRGB(imgEl) {\n var blockSize = 5,\n defaultRGB = {\n r: 0,\n g: 0,\n b: 0\n },\n canvas = document.createElement('canvas'),\n context = canvas.getContext && canvas.getContext('2d'),\n data,\n width,\n height,\n i = -4,\n length,\n rgb = {\n r: 0,\n g: 0,\n b: 0\n },\n count = 0\n\n if (!context) {\n return defaultRGB\n }\n\n height = canvas.height =\n imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height\n width = canvas.width =\n imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width\n\n context.drawImage(imgEl, 0, 0)\n\n try {\n data = context.getImageData(0, 0, width, height)\n } catch (e) {\n return defaultRGB\n }\n\n length = data.data.length\n\n while ((i += blockSize * 4) < length) {\n if (\n data.data[i] > 200 ||\n data.data[i + 1] > 200 ||\n data.data[i + 2] > 200\n )\n continue\n ++count\n rgb.r += data.data[i]\n rgb.g += data.data[i + 1]\n rgb.b += data.data[i + 2]\n }\n\n rgb.r = ~~(rgb.r / count)\n rgb.g = ~~(rgb.g / count)\n rgb.b = ~~(rgb.b / count)\n\n return rgb\n }\n})()\n;(function(window, factory) {\n if (typeof exports === 'object') {\n module.exports = factory\n } else if (typeof define === 'function' && define.amd) {\n define(factory)\n } else {\n window.eventUtil = factory()\n }\n})(this, function() {\n return new AwesomeQRCode()\n})\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.bindElement)?_c('div',[_c('img',_vm._b({},'img',{id:_vm.uuid},false))]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function toBoolean(val) {\n if (val === '') return val\n return val === 'true' || val == '1'\n}\n","function imgLoaded(url) {\n return new Promise(function(resolve, reject) {\n if (url.slice(0, 4) == 'data') {\n var img = new Image()\n img.onload = function() {\n resolve(img)\n }\n img.onerror = function() {\n reject('Image load error')\n }\n img.src = url\n return\n }\n var xhr = new XMLHttpRequest()\n xhr.onload = function() {\n var newUrl = URL.createObjectURL(this.response)\n var img = new Image()\n img.onload = function() {\n resolve(img)\n URL.revokeObjectURL(newUrl)\n }\n img.onerror = function() {\n reject('Image load error')\n }\n img.src = newUrl\n }\n xhr.open('GET', url, true)\n xhr.responseType = 'blob'\n xhr.send()\n })\n}\nexport default imgLoaded\n","\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./vue-qr.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./vue-qr.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./vue-qr.vue?vue&type=template&id=1a574806&\"\nimport script from \"./vue-qr.vue?vue&type=script&lang=js&\"\nexport * from \"./vue-qr.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueQR from './vue-qr.vue'\nexport default VueQR"],"sourceRoot":""}